24年4.22更新:
之前用的jenkins镜像为jenkinsci/blueocean,此次使用时发现安装后在jenkins安装的nodejs插件可以安装node版本但无法执行。报错类似/tmp/jenkins8777690772299864547.sh: line 3: node: not found
进入容器后找到使用jenkins nodejs插件安装的nodejs的bin目录,执行node -v报错bash: ./node: No such file or directory
多次尝试后问题还存在,后更换镜像为jenkins/jenkins 解决了这个问题
但该镜像需要更换docker源,在docker源更换为https://9cpn8tt6.mirror.aliyuncs.com后解决了镜像pull问题(期间换过163的源试了也不行)
以下是原文
一、下载安装jenkins
因为下载windows版本的jenkins踩了好多坑,所以我还是选择docker安装。
此处略过docker安装教程。。。
安装jenkins
参考官方文档https://www.jenkins.io/zh/doc/book/installing/
//拉取镜像
docker pull jenkinsci/blueocean
docker run \
-u root \
--rm \
-d \
-p 8888:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean
此处有一个坑,docker在附加--rm参数时创建的容器在关闭后会自动清空容器。所以要去掉--rm。不然容器中创建的一些东西就没有了。另外我端口选择了8888,因为8080被占了。
打开jenkins
浏览器访问http://127.0.0.1:8888 (如果不是装在本地,则用相应地址)第一次打开jenkins需要输入管理员密码
需先执行docker exec -it 进入jenkins容器,按提示找到密码所在文件。
。然后进行插件安装,选推荐插件就行。
安装插件
点击系统管理=》插件管理=》可选插件 进行插件安装。
我主要安装了
1、Git Parameter(用于git参数化构建,可以在构建时选择git分支)
2、NodeJS Plugin (用于执行npm build之类的打包命令)
安装完后在创建任务时才有以下项
但此时NodeJS Installation中下拉框没内容。需要在全局工具中配置。
3、Publish Over SSH(用于构建之后的发布,通过ssh传至项目地址)
安装完成后需要在系统管理=》系统配置中配置ssh
配置gitlab
jenkins部署的流程无非是从gitlab(或者别的地方)下载代码,执行一系列shell脚本(npm i && npm build等)。打包完成后通过ssh传到需要部署的服务器。所以这一步骤需要接通gitlab。
1、登录容器
docker exec -it jenkins-blueocean bash
2、创建ssh公钥
//在容器中执行 ssh-keygen
在.ssh文件夹下会生成id_rsa id_rsa.pub文件夹。执行命令cat id_rsa.pub将文件中的内容复制出来(此处小坑,用vi命令打开文件不太好复制,还是cat好使)
3、在gitlab中添加刚才复制的公钥
4、如果在添加完后,还无法接通gitlab。可以在容器中执行git clone 你项目的git地址。(如果通过gitlab插件方式可省去这一步骤)
配置nodejs
在系统管理=》全局工具配置里面(http://127.0.0.1:8888/configureTools/)
选择node安装
新建任务
选择gitlab地址及分支
添加node
执行shell