项目部署(三、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 "启动成功"