資安

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"
clipboard.png

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
clipboard.png

製作鏡像
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

Leave a Reply

Your email address will not be published. Required fields are marked *