Docker容器之简化JRE基础镜像
导语:打算加快部署速度。优化上传镜像和下载镜像的速度。做一个比较小的基础镜像1、使用的是Oracle的JRE不是openjdk。Oracle JDK license问题,Docker官方的Java基础镜像使用的是OpenJDK而不是Oracle JDK。2、因为java依赖glibc,所以基础镜像使用的是alpine-glibc而非alpine,alpine-glibc大概是11.1M。下载对应j
·
导语:打算加快部署速度。优化上传镜像和下载镜像的速度。做一个比较小的基础镜像
1、使用的是Oracle的JRE不是openjdk。Oracle JDK license问题,Docker官方的Java基础镜像使用的是OpenJDK而不是Oracle JDK。
2、因为java依赖glibc,所以基础镜像使用的是alpine-glibc而非alpine,alpine-glibc大概是11.1M。
下载对应jre包 我下载的是jre-8u271-linux-x64.tar.gz
https://www.java.com/en/download/manual.jsp
tar zxvf jre-8u271-linux-x64.tar.gz
cd jre1.8.0_271/
#删除文本文件
rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txtTHIRDPARTYLICENSEREADME.txt Welcome.html
#删除其他无用文件
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
# 打包 并拷贝到响应的目录去
tar zcvf jre8.tar.gz *
mv jre8.tar.gz /opt/tomcat
创建Dockerfile 我这里暂时不需要expose tomcat的端口
FROM docker.io/jeanblanchard/alpine-glibc
MAINTAINER yjk Enterprise Container Images <xujiamin@hz-health.cn>
#ADD jdk-8u202-linux-x64.tar.gz /usr/local/java/
ADD jre8.tar.gz /usr/local/java/jdk/
ADD Shanghai /etc/localtime
ADD tomcat.tar.gz /srv/tomcat/
RUN echo "Asia/Shanghai" > /etc/timezone \
&& mv /srv/tomcat/tomcat /srv/tomcat/tomcat8
ENV LANG C.UTF-8
ENV JAVA_HOME /usr/local/java/jdk
ENV JRE_HOME ${JAVA_HOME}
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH
这里的tomcat.tar.gz 和 Shanghai不需要的可以不加。
构建镜像
docker build -t registry.cn-shanghai.aliyuncs.com/yjk-datag/tomcat:v16 .
docker push registry.cn-shanghai.aliyuncs.com/yjk-datag/tomcat:v16
镜像大小对比 之前是在centos7里加tomcat 再commit容器做的镜像
参考
https://my.oschina.net/shyloveliyi/blog/1627020
更多推荐
已为社区贡献21条内容
所有评论(0)