背景说明
OpenJDK 和Oracle JDK 一般情况下我们选择OpenJDK,两者针对大部分场景都可以满足,有些地方例如反射技术获得某些包路径下的类对象等,有时候选择OpenJDK会导致空指针异常。
两者在底层实现方面有部分区别。
创建镜像
这里是Linux环境,假设我们在路径 /apps/jdk
目录下:
下载 JDK17 jar jdk-17.0.11_linux-x64_bin.tar.gz
到该目录下,
- 创建Dockerfile
# 使用一个轻量级的 Linux 基础镜像
FROM ubuntu:24.04
# 设置环境变量
ENV JAVA_HOME=/usr/local/jdk-17
ENV PATH=$JAVA_HOME/bin:$PATH
# 创建目录并解压 JDK
WORKDIR /usr/local
COPY jdk