我有一个应用程序,其中有两个 Dockerfile 文件,分别为 Dockerfile.foo 和 Dockerfile.bar,它们应该为 docker-compose.yml 的两个不同服务生成两个不同的镜像。
例如,可能如下所示:
例如,可能如下所示:
# ...
services:
service1:
build:
context: .
dockerfile: Dockerfile.foo
service1:
build:
context: .
dockerfile: Dockerfile.bar
# ...
但是Dockerfile.{foo,bar}
的前半部分相同,而它们的左侧部分不同。
如何通过使.{foo,bar}
从基础Dockerfile.common
扩展来避免不必要的重复构建和维护麻烦?换句话说,在docker-compose.yml
中是否可能实现类似于FROM Dockerfile.common
的内容存档?
更新:
我希望使用docker-compose
自动化构建过程,而无需手动运行(或使用单独的build.sh
):
- 首先运行
docker build -f Dockerfile.common -t common .
; - 然后运行
docker build -f Dockerfile.foo -t foo . && docker build -f Dockerfile.bar -t bar .
,以便Dockerfile.{foo,bar}
可以正确引用common
镜像。
Dockerfile
中吗? - samthegolden