?【jenkins】jenkins流水線構(gòu)建打包jar,生成docker鏡像,重啟docker服務的過程,在jenkins上一鍵完成,實現(xiàn)提交代碼自動構(gòu)建,服務重啟,服務發(fā)布的功能。一鍵實現(xiàn)。非常的舒服。
1. 啟動腳本 shell腳本
這是 shell腳本?
腳本名稱: startup.sh ?
本腳本的功能是在jenkins 構(gòu)建完項目后,通過jar包生成docker 鏡像,然后重新服務的功能。demo-test是 服務名字
腳本目錄地址: /root/saas/akk-account/startup.sh
?
## startup.sh
## 本腳本的功能是在jenkins 構(gòu)建完項目后,通過jar包生成docker 鏡像,然后重新服務的功能。
## demo-test是 服務名字
#!/bin/sh
echo "==================== start restart docker containers ====================="
APP_DIR=/root/saas/demo-test
APP_NAME=demo-test
APP_PORT=7080
VERSION=1.0.0-SNAPSHOT
cd $APP_DIR
rm -f demo-test-${VERSION}.jar
cp /data/jenkins/workspace/demo-test/target/demo-test-${VERSION}.jar ./
sleep 3s
## 檢查進程是否存在
PID=$(docker ps -a --filter name=$APP_NAME| grep -v "grep"|awk '{print $2}'|awk 'NR==2')
if [ "$PID" == "" ]; then
echo "應用:$APP_NAME 容器不存在。"
else
echo "應用:$APP_NAME 存在容器:$PID"
docker stop $PID
docker rm $PID
echo "容器:$PID 停止成功。"
docker rmi $PID
echo "鏡像:$PID 停止成功。"
fi
echo "應用:$APP_NAME 正在啟動..."
docker build -t $APP_NAME .
docker run -m 4g --name $APP_NAME -d -p $APP_PORT:$APP_PORT -v /etc/localtime:/etc/localtime -v /data/logs/saas/demo-test/logs:/root/saas/demo-test/logs --network host $APP_NAME
echo "應用啟動命令已執(zhí)行,稍候請檢查服務是否可用。"
echo "==================== end restart docker containers =========================="
~
2. Dockerfile文件
上面的shell腳本在執(zhí)行 docker build命令的時候,需要一個 Dockerfile文件,Dockerfile文件內(nèi)容:
FROM openjdk:8
MAINTAINER "維護者 <email>"
RUN echo "Asia/Shanghai" > /etc/timezone
LABEL description="demo-test"
ADD demo-test-1.0.0-SNAPSHOT.jar demo-test.jar
EXPOSE 7080
ENTRYPOINT ["java","-XX:+UseContainerSupport","-XX:MaxRAMPercentage=75.0","-server","-XX:+UseG1GC","-XX:MaxGCPauseMillis=200","-Xmx1024m","-Xms1024m","-Xmn384m","-jar","-Dspring.profiles.active=dev","demo-test.jar"]
3. 文件目錄關(guān)系
Dockerfile 和startup.sh文件是在同一個目錄下面
比如都是在這個目錄下面:? /root/saas/akk-account/
然后下面的jenkins進行配置的時候,需要用到這個 startup.sh的腳本文件, 而startup.sh腳本文件運行的時候依賴Dockerfile文件,就是這樣的關(guān)系。
4. jenkins 任務的創(chuàng)建
jenkins 流水線的配置:
?
clean package -Dmaven.test.skip=true?
????????進行java 編譯打包,生成jar文件文章來源:http://www.zghlxwxcb.cn/news/detail-677933.html
sh /root/saas/akk-account/startup.sh
? ? ? ? docker鏡像生成, 啟動docker服務文章來源地址http://www.zghlxwxcb.cn/news/detail-677933.html
到了這里,關(guān)于【jenkins】jenkins流水線構(gòu)建打包jar,生成docker鏡像,重啟docker服務的過程,在jenkins上一鍵完成,實現(xiàn)提交代碼自動構(gòu)建的功能的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!