当前位置: 首页 > news >正文

podman通过Dockerfile自定义镜像

podman通过Dockerfile自定义镜像

使用Dockerfile,podman自定义带vim、ifconfig、openjdk25的rockylinux10镜像

📝 修改后的 Dockerfile

# 1. 选择基础镜像
# 推荐使用官方镜像,也可替换为其他第三方镜像(见下文说明)
FROM docker.io/rockylinux/rockylinux:10.0.20250606# 2. 设置维护者信息(可选)
LABEL maintainer="wt@example.com"# 3. 设置工作目录
ENV MYPATH /usr/local
WORKDIR $MYPATH# 4. 更新包管理器并安装软件
# Rocky Linux 10 使用 dnf 作为包管理器
RUN dnf -y update && \dnf -y install vim net-tools && \dnf clean all
#===使用本地压缩包安装openjdk25===
#======方式一、COPY安装======
#COPY openjdk-25.0.2_linux-x64_bin.tar.gz /tmp/
#RUN mkdir -p /usr/local/java && \
#    tar -xzf /tmp/openjdk-25.0.2_linux-x64_bin.tar.gz -C /usr/local/java && \
#    rm -f /tmp/openjdk-25.0.2_linux-x64_bin.tar.gz && \
#    cd /usr/local/java && \
#    mv jdk-25.0.2 jdk25   # 假设解压后目录名是 jdk-25.0.2
#ENV JAVA_HOME /usr/local/java/jdk25
#ENV PATH $JAVA_HOME/bin:$PATH
#=======方式二、ADD安装=======
# 添加本地 JDK 压缩包并自动解压
ADD openjdk-25.0.2_linux-x64_bin.tar.gz /usr/local/java/# 设置 JAVA_HOME,解压后的目录名为 jdk-25.0.2
ENV JAVA_HOME /usr/local/java/jdk-25.0.2
ENV PATH $JAVA_HOME/bin:$PATH
# 5. 验证安装(可选)
RUN vim --version && \ifconfig --version && \java -version# 6. 容器启动时默认执行的命令
CMD ["/bin/bash"]

 


🛠️ 构建与运行步骤

  1. 准备文件
    确保 openjdk-25.0.2_linux-x64_bin.tar.gz 与 Dockerfile 放在同一目录下。

  2. 构建镜像
    在终端执行:

    podman build -t rockylinux-java:10.25 .

     


    命令最后的 . 表示构建上下文为当前目录,因此镜像构建时会包含该压缩包。
  3. 运行容器

    podman run -it --name my-dev rockylinux-java:10.25

     

    进入容器后即可使用 vimifconfig 和 java 命令。


🔍 关键点说明

  • ADD 自动解压ADD 命令会自动识别 .tar.gz 格式并解压到目标目录,解压后的文件夹名与压缩包内的根目录名一致(通常为 jdk-25.0.2),因此我们直接设置 JAVA_HOME=/usr/local/java/jdk-25.0.2

  • 避免重复下载:由于使用本地包,整个构建过程不依赖外部源,构建速度更快,且不受 dnf 源中 OpenJDK 25 可用性的影响。

  • 环境变量持久化ENV 设置的环境变量在容器运行时依然有效,确保 java 命令可直接使用。


⚠️ 注意事项

  • 压缩包名称:请确保文件名与 Dockerfile 中的 ADD 指令完全一致(包括大小写)。

  • 解压后目录名:如果您的 JDK 压缩包解压后的目录名不是 jdk-25.0.2(比如带有其他后缀),请根据实际情况修改 JAVA_HOME 的路径。进入容器后可通过 ls /usr/local/java/ 确认目录名,再调整 Dockerfile 中的 ENV JAVA_HOME

  • 构建上下文大小:JDK 压缩包较大(约 150MB+),构建时会完整复制到镜像中,请确保磁盘空间充足。

如果后续需要调整 JDK 版本,只需替换压缩包并相应修改 JAVA_HOME 路径即可。