从多个dockerfile构建多个图像

Mah*_*tam 11 docker docker-compose

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

docker build -t <image_name> .
Run Code Online (Sandbox Code Playgroud)

上面将选择名为的dockerfile Dockerfile

docker build -t <image_name> Dockerfile_app1
Run Code Online (Sandbox Code Playgroud)

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

我也尝试过docker-compose build.但它无济于事.

app1:
  build: Dockerfile_app1
  ports:
   - "80:80"
app2:
  build: Dockerfile_app2
  ports:
   - "80:80"
Run Code Online (Sandbox Code Playgroud)

Adr*_*uat 24

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

$ docker build -t <image_name> -f Dockerfile_app1 .
...
Run Code Online (Sandbox Code Playgroud)

或者在Compose中,您可以使用dockerfile版本1.3以上的密钥:

app1:
  build: .
  dockerfile: Dockerfile_app1
  ports:
   - "80:80"
app2:
  build: .
  dockerfile: Dockerfile_app2
  ports:
   - "80:80"
Run Code Online (Sandbox Code Playgroud)

请注意,build键是用于构建上下文,而不是Dockerfile的名称(因此它查找Dockerfile_app1在您的案例中调用的目录).