接前文,已经在windows电脑上安装了虚拟机,部署安装了Docker和Gitlab,为了模拟实现实际工作中使用Jenkins完成持续集成和持续部署,现在此基础上,试着搭建Docker+Jenkins+Gitlab+Maven的持续集成环境。
目录
大体步骤如下:
- 开发人员通过IDE工具将代码推送到gitlab.
- jenkins从gitlab中获取到源码,并使用maven编译、打包、自动构建镜像.
- jenkins在构建脚本中调用docker命令将构建好的镜像push到本地Docker Registry.并启动相应的容器.
- jenkins构建失败或者成功,可以及时将结果推送给相关人员,比如测试人员,安排测试.
- 运维人员只需获取相应的镜像就可以快速发布到生产环境
1、Docker下安装Jenkins
注意在安装Jenkins时踩过的坑:
A、安装的不是最新版本的Jenkins,导致在下载插件时总是失败。
解决:使用最新版本lts
B、因为没有跟虚拟机内的docker共用一个docker,导致Jenkins里编译后处理的shell脚本里不认识docker命令
解决:使用dood方式重新编译Jenkins,共用宿主机内的docker
下面详细说明。
①、首先在docker官方仓库网页搜索jenkins的镜像。注意,要安装的是 jenkins/jenins:lts,不是jenins,后者已经被官方废弃了。
docker pull jenkins/jenkins:lts
②、因为自己的docker和Jenkins安装在同一虚拟机下,并且打算在Jenkins的编译后处理里使用的shell脚本里,也想使用docker环境,但如果不加配置,则会在shell脚本执行时报:Docker not found错误。因此,决定使用dood方案,以使得在docker容器中使用宿主机上的docker服务。
②-1.先删掉之前建好的jenkins容器和镜像,然后在虚拟机上创建一个空的Dockerfile文件.
[root@bogon jenkins-dood]# touch Dockerfile
②-2.编写Dockerfile脚本
[root@bogon jenkins-dood]# vi Dockerfile
FROM jenkins/jenkins:lts
USER root
ARG dockerGid=999
RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/gro