Dockerfile 的核心目的是基于Alpine 3.10轻量镜像构建一个包含 JDK 8u411 的 Java 运行环境,同时解决 Alpine 原生 musl-libc 与 Oracle JDK 依赖 glibc 的兼容性问题,还配置了阿里云源、上海时区和中文 UTF-8 编码,最终默认执行java -version验证环境。
Dockerfile
FROM alpine:3.10
MAINTAINER yunhaoz659@gmail.com
WORKDIR /java
ADD jdk-8u411-linux-x64.tar.gz /java
ADD sgerrand.rsa.pub /etc/apk/keys
COPY glibc* /java/
RUN echo "http://mirrors.aliyun.com/alpine/v3.10/main/" > /etc/apk/repositories \
&& echo "http://mirrors.aliyun.com/alpine/v3.10/community/" >> /etc/apk/repositories \
&& apk update \
&& apk --no-cache add ca-certificates \
&& apk add glibc-2.29-r0.apk glibc-bin-2.29-r0.apk glibc-i18n-2.29-r0.apk \
&& rm -rf /var/cache/apk/* glibc-2.29-r0.apk glibc-bin-2.29-r0.apk glibc-i18n-2.29-r0.apk \
&& ln -svf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone \
&& /usr/glibc-compat/bin/localedef -i zh_CN -f UTF-8 zh_CN.UTF-8
ENV JAVA_HOME /java/jdk1.8.0_411
ENV PATH $JAVA_HOME/bin:$PATH
ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV LANG=zh_CN.UTF-8
ENV LANGUAGE=zh_CN.UTF-8
ENV LC_ALL=zh_CN.UTF-8
CMD ["java", "-version"]
附件下载:
Categories:
docker与kubernetes