jenkins+gitlab+maven+docker自動化部署spring boot

 

 工作流程:

開發人員在gitLab上打了一個tag
gitLab把tag事件推送到Jenkins
Jenkins 獲取tag源碼,編譯,打包,構建鏡像
Jenkins 複製jar包到遠程服務器
Jenkins 執行遠程腳本(停止老版本容器,刪除老版本容器,build 鏡像,run 新容器)
通知測試人員部署結果

環境要求:

git,jdk,maven,docker,jenkins

一、環境安裝:

1.1先安裝jdk,maven

https://blog.csdn.net/sopp_li/article/details/80446932

遠程wget下載不到文件,可到官網下載最新的。再配置

1.2 安裝git

https://www.cnblogs.com/gsliuruigang/p/7899803.html

1.3安裝 docker 

http://www.runoob.com/docker/centos-docker-install.html

  

1.4 安裝jenkins

https://www.cnblogs.com/stulzq/p/9291237.html

docker 安裝 jenkins

https://www.cnblogs.com/stulzq/p/8627360.html

  

二、 jenkins 配置

插件下載
所需要的插件:
Maven Integration plugin
docker-build-step
Docker plugin
Gitlab Hook Plugin
GitLab Plugin

jenkins 系統配置:

2.1Maven項目配置

默認配置即可

2.2 Gitlab 配置

 Credentials 添加:

gitlab的賬號、密碼

gitlab 有權限的api token

可提前在憑證》系統裏添加好

 

jenkins全局工具配置 

2.3Maven 配置

選擇安裝的maven的目錄settings.xml路徑

 

2.4 Maven配置,新增一個,去掉自動安裝,選擇安裝的目錄

到止jenkins環境配置完成。

 

三、配置部署項目

 在jenkin裏新建任務,構建一個maven項目

3.1源碼管理:

把git地址,填上,Credentials 如果之前未設置,添加一個

如果連接成功,不會報報錯

3.2構建觸發器

 

在gitlab的項目裏》設置》導入所有倉庫,webhooks配置,填上上邊的url,secret token

配置成功下邊會顯示 200狀態碼

 

3.3 構建build

 

 

構建成功後,在jenkins workspace文件目錄裏可看到下載下來的代碼,以及在target裏生成的jar包

Post Steps執行發佈,更新腳本

在遠程操作之前,先要配置發佈對象主機免密登錄

https://blog.csdn.net/fuck487/article/details/79361197

具體腳本:

echo '================打包完成,開始複製================'
cd /var/lib/jenkins/workspace/gpsserver
scp Dockerfile-gps  root@hadoop1:/data/public/gpsserver/
scp server-gps/target/gpserver.jar  root@hadoop1:/data/public/gpsserver/
echo '================複製文件完成================'
ssh root@hadoop1 << remotessh 
echo '================進入主機hadoop1 shell================'
cd /data/public/gpsserver
echo '================停止容器 gpsserver================'
sudo  docker stop gpsserver
echo '================刪除容器 gpsserver================'
sudo  docker rm gpsserver
echo '================刪除鏡像 gpsserver:latest================'
sudo  docker rmi gpsserver:latest
echo '================build 鏡像 gpsserver:latest================'
sudo docker build -t gpsserver:latest -f ./Dockerfile-gps .
echo '================運行容器 gpsserver================'
sudo docker run --name=gpsserver -e JAVA_OPTS='  -Dspring.profiles.active=prod ' --restart always -it -d -p 10111:10111 -p 15678:15678  -v /data/public/gpsserver/logs:/logs gpsserver:latest

echo "finished!"
exit  ###退出遠程機器
remotessh  ###結尾哦
echo '================結束遠程啓動================'

  

 

 至此 一個項目配置完成。

結語:

jenkins 只是一個工具,使用功能強大,有其他的使用方式:

1.生成docker鏡像,上傳到阿里雲或自搭鏡像服務器,遠程到主機shell進行pull,更新容器等。

2.可配合docker swarm,搭建集羣部署,只需改一下腳本即可。

 

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