docker最小化jdk基础镜像

发布时间 2023-10-12 10:00:06作者: mrdongdong

一、说明

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 <aluopy@qq.com>
# 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-glibc

WORKDIR /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