以下是一个简单的Dockerfile,用于基于`ubuntu:22.04`镜像创建一个新的镜像,并在其中安装你提供的OpenJDK 11.0.22_7的离线安装包。
# 指定基础镜像
FROM ubuntu:22.04
# 设置环境变量,防止在复制或解压时出现问题
ENV DEBIAN_FRONTEND=noninteractive
# 安装必要的依赖
RUN apt-get update && \
apt-get install -y --no-install-recommends \
tar \
&& rm -rf /var/lib/apt/lists/*
# 设置工作目录
WORKDIR /tmp
# 复制JDK离线安装包到/tmp目录
COPY ./apply_in_docker/OpenJDK11U-jre_x64_linux_hotspot_11.0.22_7.tar.gz .
# 解压JDK安装包到/opt/java目录
RUN mkdir -p /opt/java && \
tar -zxvf OpenJDK11U-jre_x64_linux_hotspot_11.0.22_7.tar.gz -C /opt/java && \
rm OpenJDK11U-jre_x64_linux_hotspot_11.0.22_7.tar.gz
# 设置JAVA_HOME环境变量
ENV JAVA_HOME /opt/java/openjdk-11.0.22+7
ENV PATH $PATH:$JAVA_HOME/bin
# 清理缓存
RUN rm -rf /var/lib/apt/lists/*
# 容器启动时执行的命令(如果需要)
# CMD ["/bin/bash"]
# 或者如果你想设置默认的Java应用命令,可以像这样:
# CMD ["java", "-version"]
使用上述Dockerfile,你可以构建一个新的Docker镜像,它包含OpenJDK 11.0.22_7的JDK。要构建这个镜像,请保存Dockerfile到一个文件中,然后使用以下命令:
```sh
docker build -t my-ubuntu-jdk11:11.0.22-7 .
```
上述命令假设Dockerfile位于当前目录,并且`.`代表Dockerfile所在的目录。`-t`选项用于给镜像命名和打标签。
构建完成后,你可以使用`docker images`命令来查看新构建的镜像,并通过`docker run`命令来运行容器:
docker run -it --rm my-ubuntu-jdk11:11.0.22-7 java -version
这将运行一个交互式的容器,并输出Java的版本信息来验证JDK是否正确安装。
注意:Dockerfile中的`CMD`指令是容器启动时的默认命令。在这个例子中,我注释掉了CMD指令,你可以根据你的需求来设置合适的启动命令。