Jenkins +Docker+Git 實現自動部署
實現原理:
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咯
管理員密碼在運行Jenkins的時候會打印出來,如下圖
如果找不到密碼的話也可以去/var/jenkins_home/secrets/initialAdminPassword
文件夾下找到
docker ps #查詢運行的容器
docker exec -it 1e89f679ced9 cat /var/jenkins_home/secrets/initialAdminPassword
輸入密碼后,點擊“安裝推薦的插件”
等待插件安裝完畢后,創建一個管理員的用戶名和密碼
然后點擊保存,到此Jenkins就搭建完畢,下面開始對jenkins進行設置
2.配置Jenkins
1.JDK環境安裝
進入到jenkins容器中 echo $JAVA_HOME 獲取java環境安裝地址
#1e89f679ced9是Jenkins運行的容器id,使用docker ps查看
docker exec -it 1e89f679ced9 echo $JAVA_HOME
進入Jekins頁面后,找到全局配置工具
填入查詢出來的JDK路徑
2.Manven環境安裝
設置好了點擊apply保存
3. 安裝Jenkins對應Maven插件
找到 “系統管理“ - “安裝插件” ,點擊 “可選插件”,找到如下maven插件的版本 ,插件名稱 Maven Integration
3.Jenkins實現Springboot項目自動部署
1.新創建一個任務
2.配置Git
項目打包配置
配置腳本
#!/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插件
安裝好gitee插件后才會有Gitee webhook觸發構建
Gitee設置webHook
找到你發布到gitee上的項目,按照下圖設置
添加webHook
點擊“添加”,如下圖表示設置成功,就可以實現gitee代碼有推送的話,Jenkins會自動打包部署