从多个dockerfile构建多个图像

时间:2015-07-08 12:23:16

标签: docker docker-compose

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

docker build -t <image_name> .

以上将选择名为Dockerfile

的dockerfile
docker build -t <image_name> Dockerfile_app1

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

我也试过过docker-compose build。然而它无济于事。

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

1 个答案:

答案 0 :(得分:22)

只需使用-f docker build参数指定要使用的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的目录)。