在很多情況下,我們會不滿足于官方提供的Tomcat鏡像。比如官方鏡像的時區(qū)為UTC時間,并不是北京時間;再比如在特定硬件環(huán)境下,jdk的隨機(jī)數(shù)生成器初始化過慢問題。此時,我們就會考慮構(gòu)建自己的Tomcat鏡像,滿足我們實際應(yīng)用的需要。
構(gòu)建自己的Tomcat鏡像有多種方式,常用的有兩種
在官方提供的Tomcat鏡像的基礎(chǔ)上進(jìn)行構(gòu)建(以官方Tomcat鏡像為父鏡像)。官方的Tomcat鏡像已經(jīng)為我們做了很多工作,我們只需要修改部分內(nèi)容即可。
根據(jù)openjdk鏡像,參考官方Tomcat鏡像的Dockerfile文件進(jìn)行構(gòu)建。我們可以完全按照自己的需求安裝和配置Tomcat。當(dāng)然,通過第一種方式也能達(dá)到這個目的,這不是本文的重點。
為了更好地演示Tocmat鏡像的構(gòu)建步驟,本文將按照第二種方式構(gòu)建我們自己的Tomcat。我們構(gòu)建的依據(jù)當(dāng)然是官方Tomcat鏡像的Dockerfile文件,有想了解該文件的內(nèi)容朋友,可以移步至我的另一篇博客:官方Tomcat鏡像Dockerfile分析及鏡像使用。
我們會對官方的Dockerfile進(jìn)行一定的精簡,去掉可有可無的指令,并添加我們自定義的指令。當(dāng)然這個可有可無只是我個人認(rèn)為,僅供參考。
改造后的Dockerfile文件
FROM openjdk:8-jre MAINTAINER dfengwei@163.com ENV JAVA_HOME /docker-java-home ENV CATALINA_HOME /usr/local/tomcat ENV PATH $CATALINA_HOME/bin:$PATH ENV TIME_ZONE Asia/Shanghai RUN mkdir -p "$CATALINA_HOME"WORKDIR $CATALINA_HOME RUN set -x \ \ # 下載Tomcat壓縮文件 && wget -O tomcat.tar.gz 'https://www.apache.org/dyn/closer.cgi?action=download&filename=tomcat/tomcat-8/v8.5.16/bin/apache-tomcat-8.5.16.tar.gz' \ # 解壓 && tar -xvf tomcat.tar.gz --strip-components=1 \ # 刪除供Windows系統(tǒng)使用的.bat文件 && rm bin/*.bat \ # 刪除Tomcat壓縮文件 && rm tomcat.tar.gz* \ \ # 更改時區(qū) && echo "${TIME_ZONE}" > /etc/timezone \ && ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime \ \ # 處理Tomcat啟動慢問題(隨機(jī)數(shù)產(chǎn)生器初始化過慢) && sed -i "s#securerandom.source=file:/dev/random#securerand