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

Windows环境远程Docker部署Quarkus JVM应用失败,如何修复?

修复Windows下通过Dockerfile部署Quarkus到远程Docker的失败问题

问题场景

Windows环境下,已通过Maven JVM完成Quarkus应用打包,配置好IDEA的Docker镜像设置,但执行部署时失败。

Dockerfile内容

FROM registry.access.redhat.com/ubi8/openjdk-17:1.11
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'


# We make four distinct layers so if there are application changes the library layers can be re-used
COPY --chown=185 target/quarkus-app/lib/ /deployments/lib/
COPY --chown=185 target/quarkus-app/*.jar /deployments/
COPY --chown=185 target/quarkus-app/app/ /deployments/app/
COPY --chown=185 target/quarkus-app/quarkus/ /deployments/quarkus/

EXPOSE 8080
USER 185
ENV AB_JOLOKIA_OFF=""
ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"

错误信息

Error response from daemon: COPY failed: file not found in build context or excluded by .dockerignore: stat target/quarkus-app/lib/: file does not exist
Failed to deploy 'bigquarkus Dockerfile: src/main/docker/Dockerfile.jvm': Can't retrieve image ID from build stream

解决方案

错误核心是Docker构建上下文无法找到指定的target/quarkus-app/lib/目录,可按以下步骤排查修复:

  • 修正Docker构建上下文路径
    你的Dockerfile位于src/main/docker/,而target目录在项目根目录下。如果IDEA中Docker构建的上下文设为Dockerfile所在目录,Docker会在该目录下查找target,自然找不到。需在IDEA的Docker部署配置中,将**构建上下文(Context folder)**设置为Quarkus项目的根目录(即包含pom.xml和target的目录)。

  • 确认Maven打包产物完整性
    重新执行mvn clean package命令,确保打包过程无报错,然后检查项目根目录下的target/quarkus-app目录,确认其中存在lib/、app/、quarkus/文件夹及quarkus-run.jar文件。

  • 检查.dockerignore规则
    查看项目根目录下的.dockerignore文件,如果存在target/这类排除规则,会导致Docker构建时忽略整个target目录,需注释或删除该规则。

  • 调整Dockerfile路径(可选)
    若不想修改构建上下文,可将Dockerfile中的COPY路径改为基于Dockerfile所在目录的相对路径,比如../../target/quarkus-app/lib/,但这种方式易因目录结构变化出错,不推荐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 00:46:02