基于Docker與Jenkins實現(xiàn)自動化部署的原理解析
原理:Jenkins構(gòu)建(開發(fā)提交代碼到代碼管理平臺),Jenkins處理(Jenkins獲取遠(yuǎn)程代碼,自動將源代碼實現(xiàn)打包,執(zhí)行shell腳本啟動)。


Linux安裝Docker
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
aliyun配置鏡像加速器
配置鏡像加速器
針對Docker客戶端版本大于 1.10.0 的用戶
您可以通過修改daemon配置文件/etc/docker/daemon.json來使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://r27gglie.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
基于Docker安裝Jenkins環(huán)境
1、使用docker安裝jenkins
docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean
2、進入到docker容器查看密鑰
docker exec -it dfe5e689b6c9 /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword

3、打開8080網(wǎng)頁并輸入密鑰
970cbd92daba4a54ad593ff4c44449e2

將本地項目上傳到碼云代碼管理平臺
https://gitee.com/kolorbgg/devops.git
https://gitee.com/yushengjun644/mayikt-springboot.git
https://www.jianshu.com/p/e50cb1448a16
報錯則使用強制推:
git push -u origin +master #強制push
Jenkins全局工具配置
進入到j(luò)enkins容器中echo $JAVA_HOME 獲取java環(huán)境安裝地址

安裝Jenkins對應(yīng)的Maven插件
“系統(tǒng)管理”——》“安裝插件”,點擊“可選插件”,找到Maven Integration

Jenkins新建任務(wù)構(gòu)建SpringBoot

源碼管理:

Pre Steps

立即構(gòu)建:

容器里查看:
docker exec -it dfe5e689b6c9 /bin/bash cd /var/jenkins_home/workspace/devops/target/
Jenkins實現(xiàn)后臺啟動任務(wù)-shell
Post Steps
#!/bin/bash
#服務(wù)名稱
SERVER_NAME=devops
# 源jar路徑,mvn打包完成之后,target目錄下的jar包名稱,也可選擇成為war包,war包可移動到Tomcat的webapps目錄下運行,這里使用jar包,用java -jar 命令執(zhí)行
JAR_NAME=devops-1.0-SNAPSHOT
# 源jar路徑
#/usr/local/jenkins_home/workspace--->jenkins 工作目錄
#demo 項目目錄
#target 打包生成jar包的目錄
JAR_PATH=/var/jenkins_home/workspace/devops/target
# 打包完成之后,把jar包移動到運行jar包的目錄--->work_daemon,work_daemon這個目錄需要自己提前創(chuàng)建
JAR_WORK_PATH=/var/jenkins_home/workspace/devops/target
echo "查詢進程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
echo "得到進程ID:$PID"
echo "結(jié)束進程"
for id in $PID
do
kill -9 $id
echo "killed $id"
done
echo "結(jié)束進程完成"
#復(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
# java -jar $JAR_NAME.jar
# 上面指的是前臺啟動
# 后臺啟動
BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar &

sudo systemctl restart docker docker rm $(sudo docker ps -a -q) docker run -p 8080:8080 -p 8082:8082 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean
訪問:http://10.0.100.136:8082/getMayikt
到此這篇關(guān)于基于Docker與Jenkins實現(xiàn)自動化部署的文章就介紹到這了,更多相關(guān)Docker Jenkins自動化部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker環(huán)境下安裝jenkins容器的詳細(xì)教程
這篇文章主要介紹了docker環(huán)境下安裝jenkins容器的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
Docker容器的網(wǎng)絡(luò)管理和網(wǎng)絡(luò)隔離的實現(xiàn)
這篇文章主要介紹了Docker容器的網(wǎng)絡(luò)管理和網(wǎng)絡(luò)隔離的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
教你如何利用docker-maven-plugin自動化部署
本文通過兩個例子給大家講解如何利用docker-maven-plugin自動化部署,給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-09-09
Docker中實現(xiàn)CI(持續(xù)集成)和CD(持續(xù)交付/部署)的實戰(zhàn)詳解
持續(xù)集成(CI/CD)是一種軟件開發(fā)的經(jīng)驗總結(jié),它用于幫助開發(fā)團隊和交付團隊實現(xiàn)頻繁且快速的集成,以及測試他們的工作成果,以盡可能快地發(fā)現(xiàn)項目開發(fā)和交付工程中的錯誤,本文就給大家詳細(xì)的介紹一下Docker中如何實現(xiàn)CI和CD,需要的朋友可以參考下2023-08-08
遷移變更Docker默認(rèn)數(shù)據(jù)存儲目錄的步驟詳解
Docker安裝的默認(rèn)數(shù)據(jù)目錄為/var/lib/docker,但是如果/目錄掛載的磁盤空間不夠,就需要遷移docker數(shù)據(jù)到其他目錄,接下來本就給大家介紹遷移變更Docker默認(rèn)數(shù)據(jù)存儲目錄的操作步驟,需要的朋友可以參考下2023-12-12

