从多个 dockerfile 构建多个图像

Build multiple images from multiple dockerfile

有没有办法通过管理两个不同的 docker 文件来构建多个图像? 在我的例子中,我想在构建上下文中保留两个 docker 文件假设 Dockerfile_app1 Dockerfile_app2。

docker build -t <image_name> .

以上将选择名为 Dockerfile

的 docker 文件
docker build -t <image_name> Dockerfile_app1

这对我的情况也不起作用,因为它期望文件名为 Dockerfile.

我也尝试过 docker-compose 构建。但是还是不行。

app1:
  build: Dockerfile_app1
  ports:
   - "80:80"
app2:
  build: Dockerfile_app2
  ports:
   - "80:80"

只需使用 docker build-f 参数来指定要使用的 Dockerfile 的名称:

$ docker build -t <image_name> -f Dockerfile_app1 .
...

或者在 Compose 中,从 1.3 版开始您可以使用 dockerfile 键:

app1:
  build: .
  dockerfile: Dockerfile_app1
  ports:
   - "80:80"
app2:
  build: .
  dockerfile: Dockerfile_app2
  ports:
   - "80:80"

请注意,build 键用于构建上下文,而不是 Dockerfile 的名称(因此在您的情况下它会查找名为 Dockerfile_app1 的目录)。