一、搭建jenkins
1. 搜索镜像:docker search jenkins
2. 拉取镜像:docker pull jenkins/jenkins
3. 创建容器(自己创建一个jenkins目录)
docker run -t -i -p 8080:8080 -v jenkins:/var/jenkins_home -d --name jenkins jenkins/jenkins
二、nginx配置
upstream jenkins {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name Jenkins.test.demo;
location / {
#proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://jenkins;
proxy_read_timeout 120;
proxy_ignore_client_abort on;
}
}
三、jenkins配置
1. 打开Jenkins.test.demo(nginx中配置的域名)或者 127.0.0.1:8080,等待一会后到如下界面,根据提示复制出密码
2. 选择安装推荐的插件(等待...)-》创建第一个管理员-》实例配置-》保存并完成-》开始使用jenkins
3. 安装一些插件:Publish Over SSH、SSH、Generic Webhook Trigger、Gitlab、Git Parameter
Manage jenkins-》manage Plugins
所有插件安装完成后重启:Jenkins.test.demo/restart
4. 配置宿主机docker容器ssh免密登录到宿主机(或者其他远程服务器),并能够执行宿主机shell脚本(重要!!!)
1) 进入到容器中,执行:ssh-keygen -m PEM -t rsa -b 4096
2) 将生成的公钥(id_rsa.pub)追加至宿主机~/.ssh/authorized_keys中
5. jenkins配置git账号密码
系统管理-》Manage Credentials-》全局-》添加凭据
6. jenkins配置ssh免密登录信息
1) 系统管理-》系统配置-》Publish over SSH
2) -》新增
3) -》保存
四、jenkins配置gitlab全局凭据
1. 设置gitlab访问令牌
生成的token自行保存,无法二次访问
2. 系统管理-》Manage Credentials-》全局-》添加凭据
五、jenkins任务
1. jenkins-》新建任务-》输入任务名称-》构建一个自由风格的软件项目-》确定
2. -》源码配置
3. -》构建触发器
以上配置好后,根据提示拿到一个hook链接,用于配置gitlab:http://Jenkins.test.demo/generic-webhook-trigger/invoke?token=test
此处的test就是上面自定义的token值
4. -》构建环境,选择Abort the build if it's stuck 即可
5. -》构建-》添加构建步骤-》send files or execute commands over SSH
6. -》保存
六、gitlab钩子
-》设置-》Webhooks-》配置hook链接-》Add webhoook