天天看点

docker制作tomcat镜像并部署war项目

前提条件先准备好tomcat的包和jdk包:

apache-tomcat-8.5.47.tar.gz,jdk-8u181-linux-x64.tar.gz

为防止tomcat出现中文乱码

在tomcat的bin目录catalina.sh文件新增两行

vim bin/catalina.sh

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+08"

JAVA_OPTS="$JAVA_OPTS -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.language=en_US -Dsun.jnu.encoding=UTF-8"

docker制作tomcat镜像并部署war项目

tomcat启动慢解决方案

官方的文档里有这个问题的解释:修改$JAVA_HOME/jre/lib/security/java.security文件,替换securerandom.source=file:/dev/random为: file:/dev/urandom。对所有使用JVM的应用生效。

开始编写Dockerfile

FROM centos:7

设置为中国时区

RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone

设置编码环境为en_US.UTF-8

ENV LANG en_US.UTF-8

ENV LANGUAGE en_US:en

ENV LC_ALL en_US.UTF-8

#添加jdk和tomcat源码包到/usr/local/

ADD jdk-8u181-linux-x64.tar.gz /usr/local/

ADD apache-tomcat-8.5.47.tar.gz /usr/local/

java和tomcat的环境变量设置

ENV JAVA_HOME /usr/local/jdk1.8.0_181

ENV CLASSPATH /lib/dt.jar:/lib/tools.jar

ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.47

ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/lib:/bin

暴露端口

EXPOSE 8080

启动命令

CMD /usr/local/apache-tomcat-8.5.47/bin/catalina.sh run

docker制作tomcat镜像并部署war项目

制作镜像

docker build -t registry.cn-shenzhen.aliyuncs.com/lsy95/tomcat:8.5.47 -f Dockerfile .

启动tomcat镜像,并部署war包

docker run -d --name tomcat -p 8080:8080 -v xxx.war包:/usr/local/apache-tomcat-8.5.47/webapps/xxx.war tomcat:8.5.47