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倉庫:

在這裏插入圖片描述可以看出鏡像已經更新。

實驗結束。

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