docker封裝java/tomcat最小鏡像

2018年12月14日17:10:38 發(fā)表評(píng)論 6,620 ℃

一、基于centos7鏡像制作

#wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz
#wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
#mkdir /tmp/docker-jdk
#tar -zxf apache-tomcat-8.5.34.tar.gz -C /mp/docker-jdk/
#tar -zxf jdk-8u181-linux-x64.tar.gz -C /mp/docker-jdk/
#cd /tmp/docker-jdk

1、以centos7進(jìn)行封裝

#cat dockerfile

FROM centos:7
#創(chuàng)建者
MAINTAINER TangCongJiang
#復(fù)制jdk到鏡像&&復(fù)制Tomcat到鏡像
COPY jdk1.8.0_181 /usr/local/jdk/
COPY apache-tomcat-8.5.34 /usr/local/tomcat-8.5/
#設(shè)置環(huán)境變量
ENV JAVA_HOME=/usr/local/jdk \
CLASSPATH=.:${JAVA_HOME}/lib \
CATALINA_HOME=/usr/local/tomcat-8.5 \
PATH=${JAVA_HOME}/bin:$CATALINA_HOME/bin:$PATH
#開放端口
EXPOSE 8080
#執(zhí)行命令
CMD [ "/bin/bash","-c","${CATALINA_HOME}/bin/catalina.sh run" ]

2、構(gòu)建鏡像

#docker build -t java/tomacat/centos:1.8.0_181 .

#運(yùn)行

#docker run -d  -p 8080:8080 --name myjava jdk/centos:1.8.11

docker封裝java/tomcat最小鏡像

docker封裝java/tomcat最小鏡像

二、基于alpine-glibc制作

#wget http://download.oracle.com/otn-pub/java/jdk/8u192-b12/750e1c8617c5452694857ad95c3ee230/jre-8u192-linux-x64.tar.gz
#wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz
#mkdir docker-jre
#tar -zxf jre-8u192-linux-x64.tar.gz -C docker-jre/
#tar -zxf apache-tomcat-8.5.34.tar.gz -C docker-jre/
#cd docker-jre/jre1.8.0_192

1、刪除jre根目錄無用的文件

# rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME.txt  THIRDPARTYLICENSEREADME-JAVAFX.txt Welcome.html

2、精簡jre

#rm -rf     lib/plugin.jar \
lib/ext/jfxrt.jar \
bin/javaws \
lib/javaws.jar \
lib/desktop \
plugin \
lib/deploy* \
lib/*javafx* \
lib/*jfx* \
lib/amd64/libdecora_sse.so \
lib/amd64/libprism_*.so \
lib/amd64/libfxplugins.so \
lib/amd64/libglass.so \
lib/amd64/libgstreamer-lite.so \
lib/amd64/libjavafx*.so \
lib/amd64/libjfx*.so
#cd apache-tomcat-8.5.34
#rm -rf BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES  RUNNING.txt
#rm -rf webapps/{docs,examples,host-manager,manager,ROOT/*}

3、新建jsp探針進(jìn)行訪問測(cè)試,探針網(wǎng)上有很多,這里就不提供了

#vim webapps/ROOT/index.jsp

4、以alpine-glic進(jìn)行構(gòu)建

# cat dockerfile

#以alpine-glic進(jìn)行構(gòu)建
FROM frolvlad/alpine-glibc
#創(chuàng)建者
MAINTAINER TangCongJiang
#復(fù)制jre到鏡像&&復(fù)制Tomcat到鏡像
COPY jre1.8.0_192 /usr/local/java/
COPY apache-tomcat-8.5.34 /usr/local/tomcat-8.5/
#設(shè)置環(huán)境變量
ENV JAVA_HOME=/usr/local/java \
CLASSPATH=.:${JAVA_HOME}/lib \
CATALINA_HOME=/usr/local/tomcat-8.5 \
PATH=${JAVA_HOME}/bin:$CATALINA_HOME/bin:$PATH
#開放端口
EXPOSE 8080
#執(zhí)行命令
CMD [ "/bin/sh","-c","${CATALINA_HOME}/bin/catalina.sh run" ]

5、構(gòu)建鏡像

#docker build -t java/tomcat:1.8.0_192 .
#docker run -d -p 8000:8080 --name myjava java/tomcat:1.8.0_192

docker封裝java/tomcat最小鏡像

docker封裝java/tomcat最小鏡像

docker封裝java/tomcat最小鏡像


6、多階構(gòu)建

#cat dockerfile
#以構(gòu)建的Tomcat Java基礎(chǔ)鏡像構(gòu)建
FROM hub.amd5.cn/java/tomcat:1.8.0_192 as build
#創(chuàng)建者
MAINTAINER admin@amd5.cn
#解壓項(xiàng)目war包
COPY *-api-1.0-SNAPSHOT.war $CATALINA_HOME/webapps/
RUN rm -rf $CATALINA_HOME/webapps/ROOT/* \
    && unzip $CATALINA_HOME/webapps/*-api-1.0-SNAPSHOT.war -d $CATALINA_HOME/webapps/ROOT/ 
#從上面構(gòu)建的文件復(fù)制war包解壓的文件
FROM hub.amd5.cn/java/tomcat:1.8.0_192 as prod
RUN rm -rf $CATALINA_HOME/webapps/ROOT/*
COPY --from=0 $CATALINA_HOME/webapps/ROOT/ $CATALINA_HOME/webapps/ROOT/
【騰訊云】云服務(wù)器、云數(shù)據(jù)庫、COS、CDN、短信等云產(chǎn)品特惠熱賣中

發(fā)表評(píng)論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: