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

执行docker build构建Quarkus容器时提示找不到指定Dockerfile如何解决?

问题诊断
  • Docker构建命令参数使用错误:docker build 最后一个位置参数默认是构建上下文路径,而非Dockerfile路径。系统默认会在上下文路径下搜索名为Dockerfile的文件执行构建,你直接将native.dockerfile的完整路径作为上下文参数传入,系统会将该路径作为目录遍历,自然触发路径不存在的报错。
  • 构建上下文不匹配:你的Dockerfile中使用COPY target/*-runner /work/application指令,target目录默认存放在Quarkus项目根目录下,若选择Dockerfile所在的src/main/docker作为构建上下文,会无法读取到根目录下的target目录内容,后续构建也会失败。
  • 缺少前置构建步骤:IntelliJ执行构建时报错,大概率是你在执行Docker构建前,未提前生成Quarkus原生可执行文件,target目录下不存在对应的*-runner二进制文件,触发COPY指令执行失败。
解决方案
  1. 先完成Quarkus原生镜像打包,在项目根目录执行Maven命令:
mvn package -Dnative
  1. 调整Docker构建命令,在项目根目录执行如下命令:
# -f 参数用于指定自定义路径/名称的Dockerfile,最后的 . 代表使用当前项目根目录作为构建上下文
docker build -f src/main/docker/native.dockerfile .
# 若需要给生成的镜像打标签,可添加-t参数,示例:
# docker build -f src/main/docker/native.dockerfile -t quarkus-app:v1 .
  1. IntelliJ构建配置调整:打开Docker运行配置,将「Context folder」字段设置为项目根目录,「Dockerfile」字段指定为src/main/docker/native.dockerfile,同时在构建前置任务中添加执行mvn package -Dnative的Maven任务即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:24:03