Jenkins + DockerがSpringBootプロジェクトをデプロイします

ケース:Jenkinsが192.168.95.128サーバーにデプロイされています。gitlabのspringBootコードをパッケージ化して192.168.95.129サーバーにデプロイするには

jenkinsはMavenプロジェクトを作成します。

1指定されたビルドスルーパラメーターのブランチをビルドします

ここに画像の説明を挿入

2gitlabのコードアドレスを指定します

ここに画像の説明を挿入

3パッケージングコマンドに注釈を付ける

ここに画像の説明を挿入

4 jarパッケージをSSH経由で対応するサーバーに送信します(この手順がわからない場合は、SSH経由で対応するサーバーにファイルをアップロードすることに関する私のJenkinsの記事にアクセスできます)

ここに画像の説明を挿入

5 192.168.95.129サーバーが実行したいこと:

5.1 / my_data / bootフォルダーを作成します

5.2このフォルダーにbuild.shを書き込みます

#操作/项目路径(Dockerfile存放的路劲)
BASE_PATH=/my_data/boot

#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME=boot
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
 
DATE=`date +%Y%m%d%H%M`
 

 
# 备份
function backup(){
	mkdir $BASE_PATH/backup/
	if [ -f "$BASE_PATH/$SERVER_NAME.jar" ]; then
    	echo "$SERVER_NAME.jar 备份..."
        	cp $BASE_PATH/$SERVER_NAME.jar $BASE_PATH/backup/$SERVER_NAME-$DATE.jar
        echo "备份 $SERVER_NAME.jar 完成"
    else
    	echo "$BASE_PATH/$SERVER_NAME.jar不存在,跳过备份"
    fi
}
 
# 构建docker镜像
function build(){
	if [ -n "$IID" ]; then
		echo "存在$SERVER_NAME镜像,IID=$IID"
	else
		echo "不存在$SERVER_NAME镜像,开始构建镜像"
			cd $BASE_PATH
		docker build -t $SERVER_NAME .
	fi
}
 
# 运行docker容器
function run(){
	backup
	build
	if [ -n "$CID" ]; then
		echo "存在$SERVER_NAME容器,CID=$CID,重启docker容器 ..."
			docker restart $SERVER_NAME 
		echo "$SERVER_NAME容器重启完成"
	else
		echo "不存在$SERVER_NAME容器,docker run创建容器..."
			docker run --name $SERVER_NAME -v $BASE_PATH:$BASE_PATH -d -p 9999:9999 $SERVER_NAME
		echo "$SERVER_NAME容器创建完成"
	fi
}
 
#入口
run

5.3Dockerfileを作成する

#基于openjdk:8
FROM openjdk:8

#创建文件夹
RUN mkdir -p /my_data/boot
 
# 指定当前操作目录
WORKDIR /my_data/boot
 
#容器启动后执行的操作
CMD java -jar boot.jar



完了です

おすすめ

転載: blog.csdn.net/dndndnnffj/article/details/109560466