目标说明
- 其实就是使用Dockerfile构建镜像
- 挑战点在于我们构建的镜像涉及低版本的JDK(1.6)以及需要将生成的war包打包到镜像
实验环境说明
- Ubuntu:一个HOST是MAC的虚拟机,版本是16.04 LTS版本
- docker :版本18.03-ce版本,直接部署在上述的Ubuntu上
- web应用的war包(jiuchongju.war),假设已经通过Jenkins完成了打包操作,并拷贝到Dockfile所在目录(/root/docker-jcj)
- Dockerfile涉及的相关文件
- tomcat6.sh:tomcat的环境变量声明
- run.sh:调试脚本
- Dockerfile:构建镜像脚本
- 镜像构建涉及到的相关软件
- tomcat6.tar:tomcat6压缩的软件包
- jdk-6u45-linux-x64.bin:jdk1.6的安装软件包
实验脚本
1.Jenkins构建完成jiuchongju.war后的衔接脚本(需要在jenkins的脚本控制台录入)
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 .
- 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
- Dockerfile 构建镜像脚本
FROM ubuntu:16.04
MAINTAINER example <52859273@qq.com>
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
- run.sh 调试脚本
#!/bin/bash
sleep 2
while true
do
echo 1111
sleep 180
done
网友评论