docker容器中啟動tomcat應用


Dockerfile

FROM tomcat:8.5.46-jdk8-openjdk-slim
COPY ecs-console.war /usr/local/tomcat/webapps/
ENV TZ=Asia/Shanghai
ENV JAVA_OPTS -server -Xmx4736M -Xms4736M -Xmn1728M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M
RUN ln -snf /usr/share/zoneinfo/$TZ  /etc/localtime && echo $TZ > /etc/timezone
EXPOSE 8080
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]

基礎的部分就不說了,這里只指明需要注意的地方

  1. 選取8.5.46-jdk8-openjdk-slim作為基鏡像,減小鏡像的大小
  2. 設置環境變量JAVA_OPTS,控制jvm的內存大小,不然jdk8默認情況下jvm會根據宿主機的內存分配自己的內存.據說jdk10以后會根據容器的大小分配內存
  3. CMD ["/usr/local/tomcat/bin/catalina.sh","run"],直接運行tomcat的catalina.sh腳本,曾經嘗試過在這里運行startup.sh,
    但是那個腳本執行完畢后會自動進入后台模式,而docker容器必須有前台運行的應用,否則容器會直接掛掉,所以采用這種方式。
  4. 采用COPY命令加入war包,因為tomcat運行時會自動解壓,而Docker的ADD命令的效率低於COPY,所以使用COPY命令


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM