当你有一个 Dockerfile 用于数据库,一个用于应用程序服务器等等时,你如何组织属于一个项目的 Dockerfiles?您是否在源代码中创建了某种层次结构?一个大型企业项目不能只包含一个 Dockerfile 吗?
原文由 LuckyLuke 发布,翻译遵循 CC BY-SA 4.0 许可协议
当你有一个 Dockerfile 用于数据库,一个用于应用程序服务器等等时,你如何组织属于一个项目的 Dockerfiles?您是否在源代码中创建了某种层次结构?一个大型企业项目不能只包含一个 Dockerfile 吗?
原文由 LuckyLuke 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 docker 的较新版本(>=1.8.0)中,您可以执行此操作
docker build -f Dockerfile.db .
docker build -f Dockerfile.web .
一个大节省。
编辑:根据 raksja 的评论更新版本
编辑:@vsevolod 的评论:可以通过提供文件 .Dockerfile 扩展名(而不是名称)来在 VS 代码中突出显示语法,例如 Prod.Dockerfile、Test.Dockerfile 等。
原文由 Shuo 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答2.5k 阅读✓ 已解决
2 回答855 阅读✓ 已解决
1 回答1.5k 阅读✓ 已解决
2 回答1.4k 阅读
2 回答1.3k 阅读
1 回答1.6k 阅读
1.1k 阅读
作者注
这个答案已经过时了。 Fig 不再存在并已被 Docker compose 取代。已接受的答案无法删除。
Docker Compose 支持构建项目层次结构。所以现在很容易在每个子目录中支持一个 Dockerfile。
原始答案
我只是为每个组件创建一个包含 Dockerfile 的目录。例子:
在构建容器时,只需提供目录名称,Docker 就会选择正确的 Dockerfile。