基于tomcat和应用war制作docker镜像
有两个点需要注意一下
- 直接解压war到tomcat目录。尽量不要把war包考到tomcat目录下,因为那样每次启动tomcat都会去解压war导致启动慢
- 需要修改java的random设置,否则在服务器上启动程序时会启动很慢
Dockerfile文件例子
FROM tomcat:8-jre8
RUN rm -rf /usr/local/tomcat/webapps/* && mkdir /usr/local/tomcat/webapps/ROOT && mkdir /app
COPY target/test.war /tmp/
RUN unzip -q /tmp/mdata-web.war -d /usr/local/tomcat/webapps/ROOT > /dev/null 2>&1
ENV CATALINA_OPTS "$CATALINA_OPTS -Djava.security.egd=file:/dev/./urandom"
RUN old="securerandom.source=file:/dev/random" && \
new="securerandom.source=file:/dev/./urandom" && \
sed -i "s#$old#$new#" $JAVA_HOME/lib/security/java.security
EXPOSE 8080
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]