springboot docker jenkins 自动化部署并上传镜像的步骤详解

网友投稿 612 2023-06-07

springboot docker jenkins 自动化部署并上传镜像的步骤详解

springboot docker jenkins 自动化部署并上传镜像的步骤详解

springboot + docker + jenkins自动化部署项目,jenkins、mysql、redis都是docker运行的,并且没有使用虚拟机,就在阿里云服务器(centos7)运行

1、前期准备工作不说了

2、在项目根目录下新建Dockerfile

Dockerfile文件内容为:

#基础镜像

FROhttp://M openjdk:12

MAINTAINER demo

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--beijing.aliyuncs.com/-/tools'

#打包后在jenkins的地址

SOURCE_PATH='/lcy/jenkins/workspace/tools'

#Dockerfile执行jar包的地址

BASE_PATH='/lcy/work/toolshttp://'

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--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的配置

5、运行结果

本文由博客一文多发平台 OpenWrite 发布!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:web前端三大主流框架对比,Angular和React和Vue的区别,react 前端框架多久可以学会?
下一篇:将ResultSet中得到的一行或多行结果集封装成对象的实例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~