我有一个.dockerignore文件,但对于一个用例,我想在命令行指定.dockerignore的内容,如:
docker build --ignore="node_modules" -t foo .
有没有办法从命令行执行此操作?我在文档中没有看到这一点:https://docs.docker.com/engine/reference/commandline/build/#build-with--
答案 0 :(得分:3)
不,docker build
不提供.dockerignore
file的替代方案。
这就是为什么我通常会将符号链接.dockerignore_official
指向实际的.dockerignore_module
,除了某些情况,我将符号链接切换为<path/to/Dockerfile>.dockerignore
。
这是一种解决方法,但这允许我对我可能需要的不同版本的dockerignore进行版本控制,并在两者之间进行选择。
2019年4月更新:如Alba Mendez中the 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 '