jenkins+docker部署springboot项目

在springboot根目录添加Dockerfile文件

FROM openjdk:8
VOLUME /tmp
ADD target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar","--spring.profiles.active=prd"]

一、新建自由风格任务

jenkins+docker部署springboot项目_jenkins

二、参数配置

  • 按分支构建
  • jenkins+docker部署springboot项目_spring boot_02

  • 配置git代码地址、账号密码和分支信息
  • 构建参数(选择调用顶层Maven)

三、镜像构建和启动脚本

cd ${WORKSPACE}
appname="order"
if [[ -n $(docker ps -q -f "name=^${appname}\$") ]];then
docker stop ${appname}
docker rm ${appname}
else
echo "application not running"
fi
docker build -t "${appname}:${BUILD_NUMBER}" .
docker run -d -p 2002:8080 --name ${appname} ${appname}:${BUILD_NUMBER}

---------- 到此已完成-----------------------

四、 如果需要回滚

构建参数添加操作区分(deploy和rollback)

添加参数表示回滚的版本号(version)

jenkins+docker部署springboot项目_spring boot_03

构建shell脚本:

1: 部署脚本

if [ ${operate} = "deploy" ]; then

cd ${WORKSPACE}
appname="order"
if [[ -n $(docker ps -q -f "name=^${appname}$") ]];then
docker stop ${appname} || true
docker rm ${appname}
else
echo "application not runniing"
fi
docker build -t "${appname}:${BUILD_NUMBER}" .
docker run -d -p 2002:8080 --name ${appname} ${appname}:${BUILD_NUMBER}

fi
  1. 回滚脚本
if [ ${operate} = "rollback" ]; then
echo "------开始回滚----------------"
appname="order"
docker stop ${appname}
docker rm ${appname}
docker run -d -p 2002:8080 --name ${appname} ${appname}:${version}
fi
  1. 操作界面

jenkins+docker部署springboot项目_spring boot_04