Sum*_*ron 1 docker dockerfile docker-compose
docker-compose版本信息:
docker-compose version 1.24.1, build 4667896b
docker-py version: 3.7.3
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j 20 Nov 2018
Run Code Online (Sandbox Code Playgroud)
我有几个按以下约定命名的 Dockerfile 和 docker-compose 文件
Dockerfile.a
Dockerfile.b
Dockerfile.c
docker-compose.x.dev.yml
docker-compose.x.prod.yml
docker-compose.y.dev.yml
docker-compose.y.prod.yml
Run Code Online (Sandbox Code Playgroud)
哪里docker-compose.x.prod.yml可能看起来像
version: '3'
services:
a:
image: service_a
container_name: cont_a
build:
context: .
dockerfile: ./Dockerfile.a
b:
image: service_b
container_name: cont_b
build:
context: .
dockerfile: ./Dockerfile.b
Run Code Online (Sandbox Code Playgroud)
我可能会打以下电话
docker-compose -f docker-compose.x.prod.yml -f docker-compose.x.dev.yml build
Run Code Online (Sandbox Code Playgroud)
我应该如何命名我的 dockerignore 文件?我需要以下哪一项?
Dockerfile.a.dockerignore
docker-compose.x.dockerignore
docker-compose.x.prod.dockerignore
docker-compose.x.dev.dockerignore
Run Code Online (Sandbox Code Playgroud)
如果您不使用较新的 BuildKit 后端,则该.dockerignore文件必须位于该context:目录中,并且必须准确命名为.dockerignore. docker-compose块docker build都无法为其提供备用名称。在您的示例中,两个服务将始终使用相同的文件。build:.dockerignore
这意味着任一服务所需的任何文件都无法在该.dockerignore文件中列出。在实践中,这可能意味着您也不想盲目地COPY .进入图像,因为这将包含大量单个图像不需要的内容;你需要对你所COPY从事的事情更加有选择性。
BuildKit 在 Docker 中已经可用一段时间了,并且在许多安装中默认启用。如果您至少有 Docker 19.03,BuildKit 后端确实提供了执行此操作的路径;有关详细信息,请参阅@ChrisJohnson 的答案。
| 归档时间: |
|
| 查看次数: |
2196 次 |
| 最近记录: |