Docker 同一目录中有多个.dockrignore文件
在同一个目录中,我有两个Docker 同一目录中有多个.dockrignore文件,docker,Docker,在同一个目录中,我有两个dockerfile,我想为每个文件添加一个单独的.dockergnore 目前,我有: Dockerfile.npm Dockerfile.nginx 但是我可以要这样的吗 .dockerignore.npm .dockerignore.nginx 我不认为在进行构建时可以指定不同的忽略文件。但是,由于您要创建一个单独的文件,因此可以编写shell脚本 构建nginx.sh #!/bin/bash ln -fs .dockerignore.nginx .docker
dockerfile
,我想为每个文件添加一个单独的.dockergnore
目前,我有:
Dockerfile.npm
Dockerfile.nginx
但是我可以要这样的吗
.dockerignore.npm
.dockerignore.nginx
我不认为在进行构建时可以指定不同的忽略文件。但是,由于您要创建一个单独的文件,因此可以编写shell脚本 构建nginx.sh
#!/bin/bash
ln -fs .dockerignore.nginx .dockerignore
docker build -f Dockerfile.nginx -t nginxbuild .
#!/bin/bash
ln -fs .dockerignore.npm .dockerignore
docker build -f Dockerfile.npm -t npmbuild .
build\u npm.sh
#!/bin/bash
ln -fs .dockerignore.nginx .dockerignore
docker build -f Dockerfile.nginx -t nginxbuild .
#!/bin/bash
ln -fs .dockerignore.npm .dockerignore
docker build -f Dockerfile.npm -t npmbuild .
如果需要将其与
docker compose
一起使用,则需要为ngixn和npm分离文件夹,然后可以拥有各自的.dockringore
文件。在您的docker compose.yml
文件中,您需要指定目录的名称作为上下文多个DockerInore文件,或者指定docker当前不支持使用哪个DockerInore文件
在Github上查看此问题:您现在可以在Docker中使用多个
.dockrignore
文件
首先,您需要启用BuildKit模式;这可以通过设置:
export DOCKER\u BUILDKIT=1
或通过添加此配置:
{“功能”:{“buildkit”:true}
到~/.Docker/daemon.json
中的Docker守护程序配置,然后重新启动守护程序。这将在将来默认启用
您还需要在.dockerginore
文件名前面加上Dockerfile名称
因此,如果Dockerfile被称为OneApp.Dockerfile
,则需要调用忽略文件OneApp.DockerInore
所有内容摘自此评论:这看起来是一个不错的解决方案,但我想稍后在
docker compose
文件中使用它们。有没有办法在撰写文件中使用此选项?更新答案使用docker compose提出的解决方案将导致Dockerfile
出现问题。Dockerfile没有父目录的上下文,因此您希望能够复制
例如包装器是邪恶的>因此如果您的Dockerfile名为OneApp.Dockerfile忽略文件需要名为OneApp.Dockerfile不应该是OneApp.Dockerfile.Dockerfile
?不,它不是.Dockerfile
,这是一个.dockerginore
文件。@BrianDiPalma链接的问题只提到将.dockerginore
附加到指定的docker文件中(正如@koshmaster所说)。关于OneApp.dockrignore的信息在哪里?@briandiplma和@stackblow,如果有帮助的话,我已经成功地实现了这一点。filname必须是OneApp.Dockerfile.dockerginore
@koshmaster,正如我在评论中所说,我已经实现了。也许代码只是检查开始和文件扩展名。