梳理一下,我们前面是通过jenkins把打好的jar包发送到目标服务器之后构建成镜像去运行的
因为我们就一台主机没什么感觉,但是当我们测试服务器多起来了,这样的方法就不靠谱了
现在我们要换一下方法,jenkins打好jar包后不要发送到目标服务器,而是在jenkins本机就把镜像构建好,上传镜像到harbor仓库后再去通知目标服务器去自动拉取镜像部署
一、部署harbor镜像仓库
1、 安装
vi harbor.yml
部署
2、 访问harbor页面
3、新增项目
4、配置node节点镜像私有仓库地址
vi /etc/docker/daemon.json
如果不清楚咋改,就直接把下面的贴进去改ip和端口也能用
重载服务
5、重启harbor仓库
因为我这里node主机和harbor仓库是同一台主机,重启docker后harbor仓库就登不上了,需要重启下harbor
6、登陆仓库并上传业务镜像
(っ °Д °;)っ突然发现用的初始镜像略大,不过都到这了,不改了( •̀ ω •́ )y
二、jenkins 主机构建镜像
我们打算在jenkins本机来完成构建docker镜像的任务,但jenkins本身是容器启动的没有docker命令
这里我们要了解一个知识点,docker服务在启动后会生成一个套接字文件/var/run/docker.sock 而docker的守护进程(daemon) 默认会去监听这个socket文件
返回
我们只要把这个/var/run/docker.sock 和docker命令挂载到pod中就可以去使用docker命令了
当然因为是直接关联的宿主机上的docker,我们构建完成的镜像会直接存放在宿主机上
1、准备工作
2、更新jenkins yaml文件
vi /apps/devops_setup/jenkins-dev.yaml
更新
3、验证jenkins中docker是否可用
上面我们将docker的socket文件、docker命令文件、daemon.json配置文件都挂载进去了,这样一来我们就可以直接在jenkins容器中执行docker命令了
三、更新jenkins cd配置
我们jenkins已经可用使用docker命令了,那么构建操作要做出一些调整
我们原先构建完成之后是将jar包发过去打镜像,现在我们要改成直接打镜像
1、清除原先设置的构建后操作
2、新增构建操作
我们现在需要在构建的最后一步之后,也就是maven打包之后做镜像构建操作
如上,我们在maven打包之后会让jenkins主机跑上面的shell命令去把镜像推到仓库 ,注意修改自己的仓库地址
3、gitlab新增标签
假设我们现在版本更新了,重新构建了一个v3.0.0的版本,jenkins会自动帮我们上传镜像了