有没有办法通过管理两个不同的dockerfiles来构建多个图像? 在我的情况下,我想在构建上下文中保留两个dockerfile假设Dockerfile_app1 Dockerfile_app2。
docker build -t <image_name> .
以上将选择名为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"
答案 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
的目录)。