You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建含RedHat OpenJDK 17的WildFly 27 Docker镜像报错求助

解决WildFly 27 + RedHat OpenJDK 17 Docker镜像构建错误的方案

错误原因

你使用的基础镜像registry.access.redhat.com/ubi9/openjdk-17:1.18-1已经预装了OpenJDK 17,错误是因为你的Dockerfile中尝试引用本地不存在的java-17-openjdk-17.0.10.0.7-1.portable.jre.el.x86_64.tar.xz文件,导致构建时无法计算文件校验和。

正确的镜像构建方法

1. 编写正确的Dockerfile

以下是无需额外JDK包的完整Dockerfile,直接基于UBI9 OpenJDK 17镜像安装WildFly 27:

# 基于RedHat UBI9 OpenJDK 17基础镜像
FROM registry.access.redhat.com/ubi9/openjdk-17:1.18-1

# 定义WildFly版本与安装目录
ENV WILDFLY_VERSION=27.0.1.Final
ENV WILDFLY_HOME=/opt/wildfly

# 安装必要工具(wget、tar)并清理缓存
RUN microdnf install -y wget tar && \
    microdnf clean all

# 下载、解压WildFly并创建软链接
RUN wget https://github.com/wildfly/wildfly/releases/download/${WILDFLY_VERSION}/wildfly-${WILDFLY_VERSION}.tar.xz && \
    tar -xJf wildfly-${WILDFLY_VERSION}.tar.xz -C /opt && \
    ln -s /opt/wildfly-${WILDFLY_VERSION} ${WILDFLY_HOME} && \
    rm wildfly-${WILDFLY_VERSION}.tar.xz

# 添加WildFly命令到系统路径
ENV PATH=${WILDFLY_HOME}/bin:${PATH}

# 暴露WildFly默认服务端口
EXPOSE 8080 9990

# 启动WildFly独立模式(允许外部访问)
CMD ["standalone.sh", "-b", "0.0.0.0"]

2. Windows环境下的构建注意事项

  • 换行符设置:打开Dockerfile,在编辑器右下角将换行符从默认的CRLF切换为LF,避免RUN命令执行时出现语法错误。
  • 路径规范:确保Dockerfile所在目录无中文、空格或特殊字符,构建命令使用正斜杠路径(或转义反斜杠)。
  • 容器模式切换:打开Docker Desktop,确保已切换到Linux容器模式(基础镜像是Linux架构,Windows容器模式无法兼容)。

3. 执行构建与启动

在Dockerfile所在目录打开命令行,执行以下命令:

# 构建镜像
docker build -t wildfly27-ubi9-jdk17 .

# 启动容器,映射8080端口到本地
docker run -p 8080:8080 wildfly27-ubi9-jdk17

启动后访问http://localhost:8080即可验证WildFly服务是否正常运行。

内容的提问来源于stack exchange,提问作者Nishu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 18:52:42