一、说明
1、使用的是 Oracle 的 JRE 不是 openjdk
2、因为 java 依赖 glibc,所以基础镜像使用的是 alpine-glibc 而非 alpine,alpine-glibc 大概是11.1 M
二、制作
1、首先下载 jre,下载地址是https://www.java.com/en/download/manual.jsp,大概是77M。
2、解压 jre 包,删除根目录下文本文件,然后删除其他不必要文件。
#解压 tar zxvf jre-8u311-linux-x64.tar.gz #进入目录 cd jre1.8.0_311/ #删除文本文件 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、
3、重新打包所有文件(不打包也可以,在 Dockerfile 里 ADD 这个目录即可,当前精简完 jre 目录大小是107 M,压缩后是41 M)
tar zcvf jre8.tar.gz *
4、创建 Dockerfile
# using alpine-glibc instead of alpine is mainly because JDK relies on glibc FROM docker.io/jeanblanchard/alpine-glibc # author MAINTAINER aluopy <[email protected]> # A streamlined jre ADD jre8.tar.gz /usr/java/jdk/ # set env ENV JAVA_HOME /usr/java/jdk ENV PATH ${PATH}:${JAVA_HOME}/bin # run container with base path:/opt WORKDIR /opt
5、构建(整体大小是122 M)
docker build -t aluopy/java8:1.0 .
6、测试运行
$ docker run -it aluopy/java8:1.0
/opt # java -version
java version "1.8.0_311"
Java(TM) SE Runtime Environment (build 1.8.0_311-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.311-b11, mixed mode)
再进一步制作 时间同步 中文支持等
FROM docker.io/jeanblanchard/alpine-glibcWORKDIR /home/jack/
#最下面有网盘 有这两包, 一个中文 一个上面做好的jre包
#jre8.tar.gz language.tar.gz ADD *.tar.gz /opt/
ENV JAVA_HOME /opt/java ENV PATH $PATH:$JAVA_HOME/bin ENV LANG zh_CN.UTF-8 ENV TZ Asia/Shanghai
RUN cd /opt/language/ && cp sgerrand.rsa.pub /etc/apk/keys/ \ && apk add glibc-2.34-r0.apk glibc-bin-2.34-r0.apk glibc-i18n-2.34-r0.apk \ && /usr/glibc-compat/bin/localedef -i zh_CN -f UTF-8 zh_CN.UTF-8 \ && rm -rf /opt/language/*.apk
链接: https://pan.baidu.com/s/12SvS4DkVJG3y6DghEoGxMw?pwd=w5r7 提取码: w5r7
标签:opt,lib,tar,glibc,amd64,jdk,最小化,docker,alpine From: https://www.cnblogs.com/namedgx/p/17758825.html