jenkins(三)--- jenkins + gitlab + docker + harbor 实现自动触发更新

首先需要配置jenkins + gitlab自动触发更新:https://blog.csdn.net/qq_35887546/article/details/106304046

首先需要在jenkins安装docker的插件:

在这里插入图片描述

准备harbor仓库:

https://blog.csdn.net/qq_35887546/article/details/105411743

我们将harbor仓库部署在server3 (172.25.63.3)上。

配置项目test:

在这里插入图片描述添加认证如下:

在这里插入图片描述其中需要在server2安装docker,可以参考之前的博客,还需要更改docker.sock的权限(jenkins使用的是普通用户jenkins,因此需要添加权限):

[root@server2 ~]# chmod 777 /run/docker.sock

同时确保server2可以连接上server3部署的harbor仓库(比如证书,解析等都需要做)。

可以先在server2拉取nginx节省以后的时间。

之后进行保存。

接下来需要进行测试,在git仓库主机server1创建Dockerfile:

vim Dockerfile

FROM nginx
EXPOSE  80
COPY index.html /usr/share/nginx/html


cat index.html
	8888888888

git add Dockerfile
git commit -m "add dockerfile"
git push -u origin master

push后查看gitlab可以看出已经变更:
在这里插入图片描述这个变更就会触发jenkins的更新:
可以看到构建成功:

在这里插入图片描述
在这里插入图片描述现在我们将跳过push取消掉,之后保存手动触发,可以看到构建成功:
在这里插入图片描述

我的编号为20是因为中间更改了很多错误。

之后在harbor仓库里面就可以看到是上传的镜像:

在这里插入图片描述

这个latest标签的镜像始终和最新一次构建的版本相同。

也可以添加构建后的动作。

接下来我们新建一个项目docker:

在这里插入图片描述
配置项目docker:

设置在test构建稳定后执行触发:
在这里插入图片描述其动作为使用刚刚创建的镜像构建一个容器:
在这里插入图片描述保存。

手动触发test项目:在这里插入图片描述

可以看出docker项目构建成功。

我们在docker主机查看:

在这里插入图片描述容器成功运行。

这一系列就部署成功,我们的流程是 用户通过git将代码提交到gitlab,gitlab通过其配置的webhook方式触发jenkins,jenkins调用docker build 插件通过dockerfile创建镜像然后推送到harbor仓库上,之后触发jenkins 里的项目docker执行docker run命令,创建容器。

完整流程

我们接下来再次进行一遍完整的流程,实验之前首先需要更改docker项目的构建动作,因为当运行有同名容器时容器会启动失败:

在这里插入图片描述保存后开始实验:

现在server1更改index.html文件并提交:

[root@server1 ~]# cd demo/
[root@server1 demo]# ls
Dockerfile  index.html  README.md
[root@server1 demo]# vim index.html 
[root@server1 demo]# cat index.html 
8888888888
8888888888
8888888888
8888888888
8888888888
8888888888
[root@server1 demo]# git add index.html
[root@server1 demo]# git commit -m "update index.html"
[master 1cfa872] update index.html
 1 file changed, 5 insertions(+)
[root@server1 demo]# git push -u origin master 
Counting objects: 5, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 249 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
To git@172.25.63.1:root/demo.git
   4c0b5bd..1cfa872  master -> master
Branch master set up to track remote branch master from origin.

push后会更新gitlab:

在这里插入图片描述之后会触发jenkins项目test和docker的构建:

在这里插入图片描述可以看出都构建成功。

再docker主机访问容器地址:

[root@server2 ~]# curl 172.17.0.2
8888888888
8888888888
8888888888
8888888888
8888888888
8888888888

查看harbor仓库:

在这里插入图片描述可以看出镜像已经更新。

实验结束。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章