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