同一目录中有多个.dockerignore文件

时间:2017-07-27 07:31:47

标签: docker

在同一目录中,我有两个Dockerfiles,我想为每个.dockerignore添加一个单独的Dockerfile.npm Dockerfile.nginx

目前,我有:

.dockerignore.npm
.dockerignore.nginx

但我可以这样做吗?:

CSS

3 个答案:

答案 0 :(得分:10)

我认为您在构建时不能指定不同的忽略文件。但是,由于您要创建单独的文件,因此可以编写shell脚本

<强> build_nginx.sh

#!/bin/bash
ln -fs .dockerignore.nginx .dockerignore
docker build -f Dockerfile.nginx -t nginxbuild .

<强> build_npm.sh

#!/bin/bash
ln -fs .dockerignore.npm .dockerignore
docker build -f Dockerfile.npm -t npmbuild .

如果您需要将其与docker-compose一起使用,则需要为ngixn和npm分隔文件夹,然后才能拥有各自的.dockerignore文件。在docker-compose.yml文件中,您需要指定目录名称作为上下文

答案 1 :(得分:1)

Docker当前不支持多个dockerignore文件或指定要使用的dockerignore文件。

在Github上看到此问题:Add support for specifying .dockerignore file with -i/--ignore

答案 2 :(得分:1)

您现在可以在Docker中使用多个.dockerignore文件。

首先,您需要启用BuildKit模式;可以通过以下方式设置:

export DOCKER_BUILDKIT=1

或添加以下配置:

{ "features": { "buildkit": true } }

进入~/.docker/daemon.json中的Docker守护程序配置,然后重新启动该守护程序。将来会默认启用此功能。

您还需要在.dockerignore文件名前加上Dockerfile名称。

因此,如果您的Dockerfile被称为OneApp.Dockerfile,则忽略文件需要被命名为OneApp.dockerignore

全部摘自此评论:https://github.com/moby/moby/issues/12886#issuecomment-480575928