由于Docker的普及,刚好目前团队需要Jenkins自动发布环境,于是决定把使用Docker来运行Jenkins服务。

环境:Centos7

安装Docker:

systemctl install docker

运行Docker

systemctl start docker

拉镜像:

docker pull docker.io/jenkinsci/jenkins

run镜像:

docker run -i -t -d -p 1001:8080 -p 50000:50000 -v /home/manzz/jenkins/jenkins_home:/var/jenkins_home docker.io/jenkinsci/jenkins:latest

报错1:Permission denied - /var/jenkins_home/copy_reference_file.log

解决:容器需要UID为1000的用户权限,那宿主机挂在目录为root,UID为0,所以修改宿主机挂在目录权限。

chown 1000.1000 -R /home/manzz/jenkins/jenkins_home

报错2:Error resolving syscall name execveat: could not resolve name to syscall - ignoring syscall

解决:

yum install libseccomp

运行成功。

防火墙开端口映射,打开浏览器输入:ip:1001

使用Docker部署Jenkins_第1张图片密码可以使用命令查看:

docker logs -f $容器ID

又报错3:No such plugin: cloudbees-folder

解决:地址栏里面输入:ip:1001/restart

可以正常安装插件了(注:以上三个错误,我在虚拟机测试一个都没遇到过)

使用Docker部署Jenkins_第2张图片

Maven项目需要安装Maven Integration plugin插件

去Global Tool Configuration配置JDK和Maven环境

使用Docker部署Jenkins_第3张图片

如果需要ssh,Pipeline则添加插件,至此,基本环境已经搭建完成。