天天看点

制作瘦身版jre镜像

参考: https://blog.csdn.net/qq_43059674/article/details/103356158

一、准备安装包

glibc-2.30-r0.apk

glibc-bin-2.30-r0.apk

glibc-i18n-2.30-r0.apk

jre-8u202-linux-x64.tar.gz

二、处理jre

tar -zxf jre-8u202-linux-x64.tar.gz

cd jre1.8.0_202

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

rm -rf lib/plugin.jar \
ibgstreamer-lite.so \
lib/amd64/libjavafx*.so \
lib/amd64/libjfx*.so> 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 -zcf  jre-8u202-linux-x64-small.tar.gz  jre1.8.0_202
           

三、编写Dockerfile

FROM alpine:3.11
MAINTAINER ll "[email protected]"
ENV TZ=Asia/Shanghai

WORKDIR /opt/jdk
ADD jre-8u202-linux-x64.tar.gz /opt/jdk
COPY glibc-2.30-r0.apk /opt/jdk
COPY glibc-bin-2.30-r0.apk /opt/jdk
COPY glibc-i18n-2.30-r0.apk /opt/jdk
RUN echo http://mirrors.aliyun.com/alpine/v3.11/main/ > /etc/apk/repositories \
    && echo http://mirrors.aliyun.com/alpine/v3.11/community/ >> /etc/apk/repositories \
    && apk update && apk upgrade \
    && apk --no-cache add ca-certificates wget tzdata \
    && ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime \
    && echo ${TZ} > /etc/timezone \
    && wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \
    && apk add glibc-2.30-r0.apk glibc-bin-2.30-r0.apk \
    && rm -rf /var/cache/apk/* glibc-2.30-r0.apk glibc-bin-2.30-r0.apk glibc-i18n-2.30-r0.apk /var/cache/apk/* /tmp/* /var/tmp/* $HOME/.cache

ENV JAVA_HOME=/opt/jdk/jre1.8.0_202
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

CMD ["java","-version"]

           
docker built -t alpine-jre:8u202 .