前提:準(zhǔn)備好基礎(chǔ)Tomcat鏡像口蝠,準(zhǔn)備一個制作鏡像的目錄
1.準(zhǔn)備tomcat需要的xml文件
xxx.xml
<Context path="/xxx" docBase="/opt/product/apps/xxx" workDir="/opt/product/data/works/xxx">
<Resources allowLinking="true"/>
</Context>
2.打包好應(yīng)用代碼 部署文件
apps
這個目錄下為應(yīng)用文件
3.編寫all.sh文件
這里路徑都是容器里的路徑绎橘,將配置文件,日志目錄軟鏈接到掛載目錄底循,方便修改飞主,可持續(xù)化
#!/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