docker 安装 jenkin
docker pull jenkin:latest |
Publish Over SSH 插件安装
Publish Over SSH 配置
jenkin容器 生成 ssh key
ssh-keygen -t rsa
jenkin容器 在.ssh目录生成config文件 并设置权限 chmod 600 ~/.ssh/config
#用于ssh登录宿主机
host sshHost #自定义名称
user test #宿主机登录的用户名
hostname 192.168.18.112 #宿主机IP
port 22 #ssh 端口
identityfile ~/.ssh/jenkins #容器内私钥
#用于拉取git项目
host gitlab
user git
hostname 192.168.18.111
port 22
identityfile ~/.ssh/jenkins将jenkin容器生成的公钥放入宿主机.ssh目录 并加入authorized_keys
cat jenkins.pub >> authorized_keys
jenkin容器 测试连接宿主机
$ ssh sshHost
jenkin 配置 ssh
key #填写jenkin容器内生成的私钥
ssh server
Name : #随意填写 用于系统内选择
Hostname : 192.168.18.112 #宿主机名称
Username : test #宿主机用于登录的用户名
GIT项目增加jenkin.pub 公钥
项目配置
源码管理 选择git
Repository URL : git@gitlab:human/demo/human.bus.git # git 服务器用户 gitlab: config配置的host
Credentials : #选择SSH Username with private key 填写jenkin容器内生成的私钥构建环境 选择 Send files or execute commands over SSH after the build runs
Exec command :
$ docker stop node || true \ #停止容器
&& docker rm node || true \ #删除容器
&& cd /home/test/jenkins_node/workspace/nodeBus \ #项目目录
&& docker build --rm --no-cache=true -t node - < Dockerfile \ #删除
&& docker run -d --name node -p 7000:7000 \ #根据项目端口设置
-v /home/test/jenkins_node/workspace/nodeBus:/home/project \ #挂载项目目录
node:8.9.3
Dockerfile 放入项目根目录(简易内容)
FROM node:8.9.3 |
package.json npm 命令设置
"scripts": { |
Git push 后自动构建
- jenkins –> 首页 –> 用户
- 设置 –> 点击 “show API Token”
- 复制API Token内容,返回首页 –> node –> 配置 –> 构建触发器 –> 选择 “触发远程构建” –>粘贴”API Token”内容到”身份验证令牌”
登录gitlab 选择项目 settings –> Integrations
url : http://192.168.18.112:49002/job/nodeBus/build?token=<jenkin用户的token>
jenkins首页,选择 系统管理–>Configure Global Security
勾选 Allow anonymous read access
去除勾选 防止跨站点请求伪造