有没有办法通过管理两个不同的 dockerfile 来构建多个图像? 在我的情况下,我想在构建上下文中保留两个 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"
最佳答案
只需使用 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
的目录)。
关于docker - 从多个 dockerfile 构建多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31292560/