springboot docker jenkins 自動化部署並上傳映象

哈哈哈hh發表於2021-11-23

springboot + docker + jenkins自動化部署專案,jenkins、mysql、redis都是docker執行的,並且沒有使用虛擬機器,就在阿里雲伺服器(centos7)執行

1、前期準備工作不說了

2、在專案根目錄下新建Dockerfile

file

Dockerfile檔案內容為:

#基礎映象
FROM openjdk:12
#作者
MAINTAINER demo <demo@qq.com>

VOLUME /tmp
#指定配置檔案,以及jar包在伺服器上的路徑
ENTRYPOINT ["java","-Dspring.profiles.active=prod","-jar","/lcy/work/tools/tools.jar"]
#暴露埠
EXPOSE 8092

3、在伺服器找個目錄新建一個.sh檔案

#!/bin/sh
echo '================開始構建映象=============='
#映象名稱
IMAGE_NAME='registry.cn-beijing.aliyuncs.com/???/tools'
#打包後在jenkins的地址
SOURCE_PATH='/lcy/jenkins/workspace/tools'
#Dockerfile執行jar包的地址
BASE_PATH='/lcy/work/tools'
echo IMAGE_NAME=$IMAGE_NAME

echo '================複製JAR包==================='
echo $SOURCE_PATH/target/tools-0.0.1-SNAPSHOT.jar
cp $SOURCE_PATH/target/tools-0.0.1-SNAPSHOT.jar $BASE_PATH/tools.jar
chmod -R 777 $BASE_PATH/tools.jar
echo '================複製完成===================='

echo '================當前docker版本=============='
docker -v

echo '================構建映象開始================'
docker build -t $IMAGE_NAME -f $SOURCE_PATH/Dockerfile .
echo '================構建映象結束================'
#輸入要推送映象的地址,根據映象倉庫提示的地址複製
echo '================推送映象開始================'
docker login --username=??? --password=??? registry-vpc.cn-beijing.aliyuncs.com
docker push $IMAGE_NAME
echo '================推送映象結束================'

echo '================獲取容器id=================='
CID=$(docker ps | grep "$IMAGE_NAME" | awk '{print $1}')
echo 容器id=$CID

echo '================獲取映象id=================='
IID=$(docker images | grep "$IMAGE_NAME" | awk '{print $3}')
echo 映象id=$IID

if [ -n "$CID" ]; then
    echo 存在$IMAGE_NAME容器,停止容器並刪除
    docker stop tools
    docker rm tools
else
    echo 不存在$IMAGE_NAME容器,開始啟動
    docker run -p 8092:8092 -d --name tools -v $BASE_PATH:$BASE_PATH $IMAGE_NAME
fi

4、配置jenkins,執行新建的.sh檔案(記得給好許可權)其它的配置就不說了,比如github的配置
file

5、執行結果
file

本文由部落格一文多發平臺 OpenWrite 釋出!

相關文章