项目部署(三、docker+Jenkins+springboot部署)

使用第一节springboot项目,根节点创建的Dockerfile文件即可使用

#jdk版本
FROM java:8
# 作者
MAINTAINER wangkang
#系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层
VOLUME /tmp
#复制target/spring-boot-web-demo.jar到容器里WORKDIR下
ADD target/springboot-0.0.1.jar  springboot.jar
#暴露端口
EXPOSE 8080
#启动容器时的进程
ENTRYPOINT ["java","-jar","springboot.jar"]

jenkins使用同前一节,只是更改脚本:

BUILD_ID=dontKillMe
buildPath=/home/JenkinsWorkspace/workspace/springboot
serverName=springboot-0.0.1
cd $buildPath
# 容器id
CID=$(docker ps | grep "$serverName" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "$serverName" | awk '{print $3}')

# 如果容器正在运行,停止它
if [ -n "$CID" ]; then
    echo "容器id为$CID"
    docker stop "$CID"
    docker rm "$CID"
fi
# 构建镜像
if [ -n "$IID" ]; then
    echo "存在$serverName,IID=$IID"
    docker rmi "$IID"
    docker build -t $serverName .
else
    echo "不存在$serverName,开始构建镜像"
    docker build -t $serverName .
fi

echo "创建并启动新容器"
docker run --name $serverName -d -p 8080:8089 $serverName
echo "启动成功"
原文地址:https://www.cnblogs.com/Unlimited-Blade-Works/p/13275013.html