在Docker容器中安装JDK(Java Development Kit)有几种常用方法,以下是详细的步骤说明:
这是最简单的方法,直接使用官方提供的JDK镜像:
FROM openjdk:11-jdk
或者指定特定版本:
FROM openjdk:11-jdk-slim # 精简版
FROM openjdk:11-jdk-buster # 完整版
如果你需要使用特定的基础镜像,可以手动安装JDK:
FROM ubuntu:20.04
RUN apt-get update && \
apt-get install -y openjdk-11-jdk && \
rm -rf /var/lib/apt/lists/*
ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
ENV PATH=$JAVA_HOME/bin:$PATH
FROM alpine:3.12
RUN apk add --no-cache openjdk11
ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk
ENV PATH=$JAVA_HOME/bin:$PATH
如果需要使用Oracle JDK,可以这样安装:
FROM ubuntu:20.04
RUN apt-get update && \
apt-get install -y wget && \
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz && \
tar -xzf jdk-17_linux-x64_bin.tar.gz -C /opt && \
rm jdk-17_linux-x64_bin.tar.gz && \
update-alternatives --install /usr/bin/java java /opt/jdk-17/bin/java 1 && \
update-alternatives --install /usr/bin/javac javac /opt/jdk-17/bin/javac 1
ENV JAVA_HOME=/opt/jdk-17
ENV PATH=$JAVA_HOME/bin:$PATH
构建镜像后,可以运行以下命令验证JDK是否安装成功:
docker run --rm <image-name> java -version
# 构建阶段
FROM openjdk:11-jdk as builder
WORKDIR /app
COPY . .
RUN ./gradlew build
# 运行阶段
FROM openjdk:11-jre-slim
COPY --from=builder /app/build/libs/myapp.jar /app/myapp.jar
CMD ["java", "-jar", "/app/myapp.jar"]
选择哪种方法取决于你的具体需求,如JDK版本、镜像大小限制等因素。