前提:准备好基础Tomcat镜像,准备一个制作镜像的目录
1.准备tomcat需要的xml文件
xxx.xml
<Context path="/xxx" docBase="/opt/product/apps/xxx" workDir="/opt/product/data/works/xxx">
<Resources allowLinking="true"/>
</Context>
2.打包好应用代码 部署文件
apps
这个目录下为应用文件
3.编写all.sh文件
这里路径都是容器里的路径,将配置文件,日志目录软链接到挂载目录,方便修改,可持续化
#!/bin/bash
export JAVA_HOME=/data/jdk
export PATH=$JAVA_HOME/bin:$PATH
logsDir="/opt/product/data/logs/tomcat-epg"
cd /opt/product/apps/xxx/WEB-INF/conf/
rm -rf config.properties
ln -s /opt/product/xxx/configs/config.properties config.properties
cd /opt/product/apps/xxx/WEB-INF/classes/
rm -rf log4j.properties
ln -s /opt/product/data/configs/log4j.properties log4j.properties
cd /opt/product/apps/xxx/
rm -rf files
ln -s /opt/product/data/xxx-data files
cd /opt/product/tools/tomcat/
rm -rf logs
if [ ! -d $logsDir ]; then
mkdir -p $logsDir
fi
ln -s /opt/product/data/logs/tomcat-epg /opt/product/tools/tomcat/logs
sh /opt/product/tools/tomcat/bin/catalina.sh run
4.编写Dockerfile文件
FROM tomcat:v1.0
MAINTAINER gudolf
VOLUME [ "/opt/product/data" ]
ADD xxx.xml /opt/product/tools/tomcat/conf/Catalina/localhost/
ADD ./apps/ /opt/product/apps/
WORKDIR /opt/product/tools/tomcat/bin
ADD all.sh /root/
RUN chmod +x /root/all.sh
ENTRYPOINT ["/root/all.sh"]
CMD ["/usr/sbin/init"]
5.制作镜像
sudo docker build -t xxx:xxx ./
6.启动镜像
sudo docker run --name=xxx -d -ti -p 8080:8080 -v /opt/product/data/xxx:/opt/product/data -v /data/jdk:/data/jdk xxx:xxx
网友评论