Jenkins +Docker+Git 實現自動部署


Jenkins +Docker+Git 實現自動部署

實現原理:

image-20210810171900200

1.Docker安裝Jenkins

1. 運行Jenkins,如果沒有jenkins鏡像,回去自動下載

docker run -d -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

2. 訪問jenkins (使用8080端口)

docker把Jenkins容器運行起來后就可以訪問Jemkins咯

image-20210810190144679

管理員密碼在運行Jenkins的時候會打印出來,如下圖

image-20210810190305829

如果找不到密碼的話也可以去/var/jenkins_home/secrets/initialAdminPassword文件夾下找到

docker ps #查詢運行的容器
docker exec -it 1e89f679ced9 cat /var/jenkins_home/secrets/initialAdminPassword

image-20210810190722699

輸入密碼后,點擊“安裝推薦的插件”

image-20210810191941757

等待插件安裝完畢后,創建一個管理員的用戶名和密碼

image-20210810192151869

然后點擊保存,到此Jenkins就搭建完畢,下面開始對jenkins進行設置

image-20210810192246336

2.配置Jenkins

1.JDK環境安裝

進入到jenkins容器中 echo $JAVA_HOME 獲取java環境安裝地址

#1e89f679ced9是Jenkins運行的容器id,使用docker ps查看
docker exec -it 1e89f679ced9 echo $JAVA_HOME

image-20210810192851450

進入Jekins頁面后,找到全局配置工具

image-20210810192958650

填入查詢出來的JDK路徑

image-20210810193206467

2.Manven環境安裝

image-20210810193346566

設置好了點擊apply保存

3. 安裝Jenkins對應Maven插件

找到 “系統管理“ - “安裝插件” ,點擊 “可選插件”,找到如下maven插件的版本 ,插件名稱 Maven Integration

image-20210810193544252

image-20210810193702411

3.Jenkins實現Springboot項目自動部署

1.新創建一個任務

image-20210810194049531

2.配置Git

image-20210810194924265

項目打包配置

image-20210810195124828

配置腳本

image-20210810195354436

#!/bin/bash
# #!/bin/bash是指此腳本使用/bin/bash來解釋執行。其中,#!是一個特殊的表示符,其后,跟着解釋此腳本的shell路徑。
#bash只是shell的一種,還有很多其它shell,如:sh,csh,ksh,tcsh,...
# #!/bin/bash只能放在第一行,如果后面還有#!,那么只能看成是注釋。

#服務名稱

SERVER_NAME=group4_springboot

#源jar路徑,mm打包完成之后,target目錄下的jar包名稱,也可選擇成為war包,war包 可移動到Tomcat的。
JAR_NAME=group4-0.0.1-SNAPSHOT#要和idea中生成的jar名相同


#target打包生成jar包的目錄

JAR_PATH=/var/jenkins_home/workspace/group4_springboot/target    # 以具體的打包位置為准,可以先構建一次項目,通過日志查看打包的目錄

#打包完成之后,把iar包移動到運行jar包的目錄
JAR_WORK_PATH=/var/jenkins_home/workspace/group4_springboot/target

echo "查詢進程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
echo"得到進程ID: $PID"
echo"結束進程"
for id in $PID
do
kill -9 $id
echo "killed $id" 
done
echo"結束進程完成"

#復制jar包到執行目錄_

echo" 復制jar包到執行目錄:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo"復 制jar包完成"
cd $JAR_WORK_PATH
#修改文件權限
chmod 755 $JAR_NAME.jar

#前台啟動
#java -jar $JAR_NAME.jar

#后台啟動
BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar &

點擊保存應用,到此為止,jenkins可以幫我們打包部署,但是還不能實現往git上推送代碼后自動打包、部署

3.配置Gitee的WebHooks

在Jenkins上需要安裝gitee插件、publish over ssh插件

image-20210810200355834

安裝好gitee插件后才會有Gitee webhook觸發構建

image-20210810201101359

image-20210810200529305

Gitee設置webHook

找到你發布到gitee上的項目,按照下圖設置

image-20210810200649170

添加webHook

image-20210810201003687

點擊“添加”,如下圖表示設置成功,就可以實現gitee代碼有推送的話,Jenkins會自動打包部署

image-20210810201335439


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM