Jenkins+Maven+Docker持续构建2-镜像构建

目标说明

  1. 其实就是使用Dockerfile构建镜像
  2. 挑战点在于我们构建的镜像涉及低版本的JDK(1.6)以及需要将生成的war包打包到镜像

实验环境说明

  1. Ubuntu:一个HOST是MAC的虚拟机,版本是16.04 LTS版本
  2. docker :版本18.03-ce版本,直接部署在上述的Ubuntu上
  3. web应用的war包(jiuchongju.war),假设已经通过Jenkins完成了打包操作,并拷贝到Dockfile所在目录(/root/docker-jcj)
  4. Dockerfile涉及的相关文件
  • tomcat6.sh:tomcat的环境变量声明
  • run.sh:调试脚本
  • Dockerfile:构建镜像脚本
  1. 镜像构建涉及到的相关软件
  • tomcat6.tar:tomcat6压缩的软件包
  • jdk-6u45-linux-x64.bin:jdk1.6的安装软件包

实验脚本

1.Jenkins构建完成jiuchongju.war后的衔接脚本(需要在jenkins的脚本控制台录入)


Jenkins+Maven+Docker持续构建2-镜像构建_第1张图片
image.png
#切换到maven构建的target目录中,里边是我们新构建的war包jiuchongju.war
cd target
#将jiuchongju.war强制拷贝到 /root/docker-jcj/目录下,这个目录是我们用来制作docker镜像的目录
cp -r jiuchongju.war /root/docker-jcj/
#切换到镜像的制作目录 /root/docker-jcj
cd /root/docker-jcj
#启动镜像制作,调用Dockerfile 文件制作一个jcj的镜像,这个镜像会把jiuchongju.war打包部署到镜像里供使用。注意命令行的“.”,表示当前目录构建
docker build -t jcj .
  1. tomcat6.sh环境变量声明脚本
#!/bin/bash
export JAVA_HOME=/app/jdk1.6.0_45
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/app/tomcat6
export PATH=$TOMCAT_HOME/bin:$PATH
exec $TOMCAT_HOME/bin/catalina.sh run
  1. Dockerfile 构建镜像脚本
FROM ubuntu:16.04

MAINTAINER example <[email protected]>

WORKDIR /app

COPY jdk-6u45-linux-x64.bin /app/jdk-6u45-linux-x64.bin
COPY tomcat6.tar /app/tomcat6.tar

RUN chmod 777 jdk-6u45-linux-x64.bin
RUN ./jdk-6u45-linux-x64.bin
RUN tar -zxvf tomcat6.tar
RUN rm -rf jdk-6u45-linux-x64.bin
RUN rm -rf tomcat6.tar

COPY jiuchongju.war /app/tomcat6/webapps/jiuchongju.war

#for debug
#COPY run.sh /app/run.sh
#RUN chmod +x /app/run.sh
#ENTRYPOINT ["/app/run.sh"]

COPY tomcat6.sh /app/tomcat6.sh
RUN chmod +x /app/tomcat6.sh
ENTRYPOINT ["/app/tomcat6.sh"]

EXPOSE 8080
  1. run.sh 调试脚本
#!/bin/bash
sleep 2
while true
do
echo 1111
sleep 180
done

你可能感兴趣的:(Jenkins+Maven+Docker持续构建2-镜像构建)