说明
- 基本适用于所有版本jdk,改下Dockerfile中
jdk-8u202-linux-x64.tar.gz
这个文件名即可。 - glibc GitHub源下载不动的,自己找国内镜像加速的下载链接。
- 解压后的jdk可以再精简,具体要删除哪些文件自己补充进去。
Dockerfile
FROM alpine:latest as cache
COPY jdk-8u202-linux-x64.tar.gz /
RUN mkdir -p /jdk && \
tar -zxf /jdk-8u202-linux-x64.tar.gz -C /jdk --strip-components 1
FROM alpine:latest
COPY --from=cache /jdk /jdk
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories && \
apk add --no-cache tzdata && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
wget -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \
apk add --no-cache ca-certificates && \
wget -O /glibc-2.33-r0.apk https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.33-r0/glibc-2.33-r0.apk && \
apk add /glibc-2.33-r0.apk && \
wget -O /glibc-bin-2.33-r0.apk https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.33-r0/glibc-bin-2.33-r0.apk && \
apk add /glibc-bin-2.33-r0.apk && \
wget -O /glibc-i18n-2.33-r0.apk https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.33-r0/glibc-i18n-2.33-r0.apk && \
apk add /glibc-i18n-2.33-r0.apk && \
/usr/glibc-compat/bin/localedef -c -i zh_CN -f UTF-8 zh_CN.UTF-8 && \
rm -rf /glibc-*
ENV LANG="zh_CN.UTF-8"
ENV JAVA_HOME="/jdk"
ENV CLASSPATH=".:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/rt.jar"
ENV PATH="$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/usr/glibc-compat/bin"