基于Jenkins pipeline + docker 打造后端持续集成环境
本文将从零开始教你搭建一个实用的自动发布流程,文中相关示例代码已上传到 github仓库 需要的朋友可以自取~
发布流程设计
- 开发人员提交代码、合并分支推送到指定分支
- Jenkins人工/定时触发项目构建
- Jenkins拉取、编译构建、打包镜像、推送到镜像仓库
- Jenkins 执行远程脚本:远程服务器 pull 指定镜像,重启新版本容器
搭建步骤
搭建Jenkins + Docker发布环境
- 安装新版docker
$ vi /etc/yum.repos.d/docker.repo --- // 填入以下内容 [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg --- $ sudo yum install -y docker-engine $ sudo systemctl enable docker.service $ sudo systemctl start docker $ docker -v
- 安装Jenkins,初始化设置
1. mkdir /var/jenkins_home
2. sudo chown -R 1000:1000 /var/jenkins_home // 开放权限
3. sudo docker run -d -u root -name jenkins -p 8080:8080 -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/bin/docker jenkinsci/blueocean
注意: 在启动Jenkins服务时要加上-v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/bin/docker,让我们可以在docker容器中使用外部docker (docker in docker)
当在jenkins启动成功后 浏览 http://localhost:8080 并等待 Unlock Jenkins 页面出现。
在命令行中输入docker logs jenkins, 复制自动生成的字母数字密码(在两组星号之间)。 在 Unlock Jenkins 页面, 粘贴该密码到 Administrator password 字段并点击 Continue。