从命令行指定dockerignore

时间:2018-05-26 22:25:53

标签: docker dockerfile

我有一个.dockerignore文件,但对于一个用例,我想在命令行指定.dockerignore的内容,如:

docker build --ignore="node_modules" -t foo . 

有没有办法从命令行执行此操作?我在文档中没有看到这一点:https://docs.docker.com/engine/reference/commandline/build/#build-with--

1 个答案:

答案 0 :(得分:3)

不,docker build不提供.dockerignore file的替代方案。

这就是为什么我通常会将符号链接.dockerignore_official指向实际的.dockerignore_module,除了某些情况,我将符号链接切换为<path/to/Dockerfile>.dockerignore

这是一种解决方法,但这允许我对我可能需要的不同版本的dockerignore进行版本控制,并在两者之间进行选择。

2019年4月更新:如Alba Mendezthe comments所述,PR 901应提供帮助:

  

dockerfile:添加dockerignore覆盖支持

     

前端将首先检查.dockerignore,如果找到,则会使用它而不是根$ export DOCKER_BUILDKIT=1 $ echo "FROM ubuntu \n COPY . tmp/" > Dockerfile $ cp Dockerfile Dockerfile2 $ touch foo bar $ echo "foo" > .dockerignore $ echo "bar" > Dockerfile2.dockerignore $ docker build -t container1 -f Dockerfile . $ docker build -t container2 -f Dockerfile2 . $ docker run container1 ls tmp Dockerfile Dockerfile2 Dockerfile2.dockerignore bar $ docker run container2 ls tmp Dockerfile Dockerfile2 Dockerfile2.dockerignore foo

请参阅moby/buildkit commit b9db1d2

位于Docker v19.03.0 beta1,而 Alba 已发布example here

  

您需要启用Buildkit模式才能使用i

 'from pygame.base import *
ImportError: No module named base '