基于Docker+Jenkins實(shí)現(xiàn)自動化部署的方法
使用碼云搭建Git代碼存儲倉庫
- 使用碼云創(chuàng)建私有私有g(shù)it倉庫
- 將本地springboot項(xiàng)目上傳到git倉庫中
基于Docker安裝Jenkins環(huán)境
1.使用docker 安裝jenkins
docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean
2.訪問jenkins地址 8080

注意:第一次啟動的時(shí)候正在加載jenkins大概會等待3-10分鐘。
3.解鎖jenkins


docker exec -it 7f485bd95c3b /bin/bash 進(jìn)入jenkins容器 cat /var/jenkins_home/secrets/initialAdminPassword

大概需要等待3-10分鐘
創(chuàng)建新的用戶


Jenkins全局工具配置
進(jìn)入到j(luò)enkins容器中 echo $JAVA_HOME 獲取java環(huán)境安裝地址
JDK環(huán)境安裝

Maven環(huán)境安裝

安裝Jenkins對應(yīng)Maven插件
找到 “系統(tǒng)管理“ - “安裝插件” ,點(diǎn)擊 “可選插件”,找到如下maven插件的版本
插件名稱 Maven Integration


Jenkins實(shí)現(xiàn)Springboot項(xiàng)目自動部署新建一個(gè)發(fā)布任務(wù)

配置任務(wù)git賬號密碼

3.項(xiàng)目打包

clean install
點(diǎn)擊立即構(gòu)建

第一次構(gòu)建可能耗時(shí)比較長,因?yàn)樾枰螺d一些相關(guān)依賴jar包
Jenkins啟動成功之后執(zhí)行shll腳本
#!/bin/bash
#服務(wù)名稱
SERVER_NAME=springboot
# 源jar路徑,mvn打包完成之后,target目錄下的jar包名稱,也可選擇成為war包,war包可移動到Tomcat的webapps目錄下運(yùn)行,這里使用jar包,用java -jar 命令執(zhí)行
JAR_NAME=springboot-0.0.1-SNAPSHOT
# 源jar路徑
#/usr/local/jenkins_home/workspace--->jenkins 工作目錄
#demo 項(xiàng)目目錄
#target 打包生成jar包的目錄
JAR_PATH=/var/jenkins_home/workspace/springboot/target
# 打包完成之后,把jar包移動到運(yùn)行jar包的目錄--->work_daemon,work_daemon這個(gè)目錄需要自己提前創(chuàng)建
JAR_WORK_PATH=/var/jenkins_home/workspace/springboot/target
echo "查詢進(jìn)程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
echo "得到進(jìn)程ID:$PID"
echo "結(jié)束進(jìn)程"
for id in $PID
do
kill -9 $id
echo "killed $id"
done
echo "結(jié)束進(jìn)程完成"
#復(fù)制jar包到執(zhí)行目錄
echo "復(fù)制jar包到執(zhí)行目錄:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo "復(fù)制jar包完成"
cd $JAR_WORK_PATH
#修改文件權(quán)限
chmod 755 $JAR_NAME.jar
Nohub java -jar $JAR_NAME.jar
加nohub 指的是后臺運(yùn)行,或者使用nohub &
容器映射8081端口
1. 重啟容器
systemctl restart docker
2. 清空未運(yùn)行的容器
docker rm $(sudo docker ps -a -q)
docker run -p 8080:8080 -p 8081:8081 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean
到此這篇關(guān)于基于Docker+Jenkins實(shí)現(xiàn)自動化部署的文章就介紹到這了,更多相關(guān)Docker+Jenkins實(shí)現(xiàn)自動化部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Jenkins+Docker?一鍵自動化部署?SpringBoot?項(xiàng)目的詳細(xì)步驟
- 基于Docker與Jenkins實(shí)現(xiàn)自動化部署的原理解析
- docker+gitlab+jenkins從零搭建自動化部署
- springboot docker jenkins 自動化部署并上傳鏡像的步驟詳解
- 從零搭建docker+jenkins+node.js自動化部署環(huán)境的方法
- .Net Core自動化部署之利用docker版jenkins部署dotnetcore應(yīng)用的方法
- Jenkins整合Docker實(shí)現(xiàn)CICD自動化部署的詳細(xì)過程(若依項(xiàng)目)
相關(guān)文章
Docker拉鏡像報(bào)錯(cuò)error pulling image configuration:
這篇文章主要介紹了Docker拉鏡像報(bào)錯(cuò)error pulling image configuration: unknown blob的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Docker+Jenkins+Gitee自動化部署maven項(xiàng)目的實(shí)現(xiàn)
本文主要介紹了Docker+Jenkins+Gitee自動化部署maven項(xiàng)目的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
Docker 容器之間的互相通信實(shí)現(xiàn)示例
本文主要介紹了Docker 容器之間的互相通信實(shí)現(xiàn)示例,通過創(chuàng)建自定義網(wǎng)絡(luò),你可以輕松地在 Docker 容器之間建立通信,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01
使用Docker compose啟動自定義jar包的步驟詳解
這篇文章主要介紹了使用Docker compose啟動自定義jar包的步驟,首先我們需要編寫一個(gè)docker-compose.yml文件來定義我們的服務(wù)傳到我們的云服務(wù)器上,本文給大家分享示例代碼,感興趣的朋友一起看看吧2024-03-03
使用DockerFile構(gòu)建鏡像與鏡像上傳的實(shí)現(xiàn)步驟
本文主要介紹了使用DockerFile構(gòu)建鏡像與鏡像上傳的實(shí)現(xiàn)步驟,使用Dockerfile好處是自動化構(gòu)建,確保環(huán)境的一致性和可重復(fù)性,跟蹤構(gòu)建過程的演化等,文中通過圖文講解的非常詳細(xì),需要的朋友可以參考下2024-02-02

