jenkins部署
gerrit->jenkins->docker
容器构建
docker run -d --name jenkins -p 8080:8080 -v /opt/local/jenkins:/var/jenkins_home jenkins/jenkins
目前jenkins镜像由jenkins社区维护,直接使用 jenkins:latest获取的是docker官方的镜像已被废弃不再更新。
/var/jenkins_home:jenkins数据文件默认位置
jenkins使用
- 首次登陆
192.168.0.69:8087
进入容器文件夹:
$ cat /var/jenkins_home/secrets/initialAdminPassword,
获取jekins管理员密码,填写在登陆页面。
登陆完成后,会提示创建一个登陆账户,以便日常维护
-
插件选择 默认选择即可
系统管理->管理插件
需要额外下载两个插件:
CVS、Deploy to container(负责将war包上传至容器) -
系统配置CVS
进入系统管理->系统设置进行配置
首先在服务器容器中生成密钥
docker exec -it jenkins /bin/bash
ssh-keygen -t rsa -C ***@***.com.cn
-C: 只是用于标记
密码为空
可以指定密钥保存地址:/var/jenkins_home/.ssh/id_rsa
文件夹请事先创建,密钥下一步会使用到
- 添加凭据(jenkins从gerrit拉取代码 使用的密钥)
凭据->系统->全局凭据->添加凭据
docker exec -it jenkins /bin/bash
cd /var/jenkins_home/.ssh/
cat id_rsa
再添加一个tomcat manager的用户名,密码
- gerrit 添加公钥
setting->SSH Public Keys->Add Keys
docker exec -it jenkins /bin/bash
cd /var/jenkins_home/.ssh/
cat id_rsa.pub
- 添加gradle版本
系统管理->Global Tool Configuration
可能遇到的问题
执行完docker run 之后容器没有启动
使用docker run -d 启动容器后,使用docker ps发现容器没有启动,使用docker logs发现报以下错误
[root@d69 ~]# docker logs -ft jenkins
2019-04-09T09:32:19.564927882Z Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
2019-04-09T09:32:19.564954259Z touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
需要修改下目录权限, 因为当映射本地数据卷时,/home/docker/jenkins目录的拥有者为root用户,而容器中jenkins user的uid为1000
解决方法:
首先进入 挂载的文件目录,执行以下命令修改权限
[root@d69 local]# cd /opt/local/
[root@d69 local]# ls
jenkins
[root@d69 local]# chown -R 1000 jenkins
#重启容器
[root@d69 local]# docker start jenkins
jenkins
[root@d69 local]# docker ps