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

Java/Quarkus项目中Dockerfile标准存放位置咨询

Quarkus项目Dockerfile存放位置的选择与论证

两种方案的核心逻辑

  • 放在/src/main/docker/:这是Quarkus官方脚手架生成项目的默认位置,契合Maven/Gradle“源码与构建配置分类存放”的约定——把容器化配置归到src/main子目录,和业务代码、资源文件的层级逻辑统一,还能让Quarkus的构建插件自动识别,不用额外配置路径。
  • 放在项目根目录:类比Makefile的思路,根目录的配置文件更直观,不熟悉Quarkus约定的开发者一眼就能找到;执行docker build时也不用加-f指定路径,操作更省心,符合很多通用容器项目的习惯。

哪种更受推崇?

Quarkus官方的默认推荐是/src/main/docker/,官方快速启动项目、文档示例都是这个结构。这不是随便定的,是为了对齐Java生态的构建规范,让熟悉Maven/Gradle的开发者不用额外适应新路径,减少踩坑概率。

但这不是必须遵守的硬规则——如果你的团队有大量非Java/Quarkus背景的开发者,或者需要和其他跨语言容器项目保持目录结构一致,根目录存放也完全合理。

怎么论证你的选择?

核心围绕团队协作成本和技术生态适配来谈:

  • 要是想推/src/main/docker/:
    1. 拿Quarkus官方默认结构做依据,强调遵循框架约定能降低新成员的学习成本,避免因自定义路径导致的构建错误(比如Quarkus插件自动打包镜像时找不到Dockerfile)。
    2. 说明这个结构符合Maven“约定优于配置”的原则,和src/main/java、src/main/resources的层级逻辑统一,项目结构更规整,容易维护。
  • 要是想推根目录:
    1. 强调操作便捷性,直接执行docker build .就能构建,不用记额外的路径参数,减少命令行操作的出错几率。
    2. 类比Makefile、docker-compose.yml这类工具的通用存放位置,让跨语言团队的开发者更容易适应,不用特意钻进Java源码目录找容器配置。

这只是个人偏好吗?

大部分时候是团队共识优先的选择,而非单纯的个人偏好。比如纯Quarkus/Java技术栈的团队,遵循官方约定的协作成本肯定更低;如果是多语言混合团队,统一到根目录反而更利于协作。

不管选哪种,最关键的是所有仓库保持统一,这样才能实现你想要的“让其他开发者轻松协作”的目标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 07:52:38