注意:這里使用的是oracle的JRE,版本是1.8。
1、解壓jre包,刪除根目錄下文本文件,然后刪除其他不必要文件。
#解壓
tar xvcf jre-8u161-linux-x64.tar.gz
#進入目錄
cd jre1.8.0_161/
#刪除文本文件
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
2、重新打包所有文件(不打包也可以,在Dockerfile里ADD這個目錄即可,當前精簡完jre目錄大小是107M,壓縮后是41M)
tar zcvf jre8.tar.gz *
3、創建Dockerfile
# 基礎鏡像
FROM 內網ip/倉庫名/alpine:3.10
# 作者
MAINTAINER xiaobao2
# 添加glibc依賴
RUN apk --no-cache add ca-certificates && \
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.29-r0/glibc-2.29-r0.apk && \
apk add glibc-2.29-r0.apk
# 安裝jre
ADD jre8.tar.gz /usr/java/jdk/
# 設置變量
ENV JAVA_HOME /usr/java/jdk
ENV PATH ${PATH}:${JAVA_HOME}/bin
# 運行容器的工作目錄
WORKDIR /opt
4、構建(整體大小大概是125M)
docker build -t 內網ip/倉庫名/java:8 .
5、測試運行
# docker run -it 內網ip/倉庫名/java:8 /opt
# java -version