我打算从docker镜像中排除python生成的文件.所以我在上下文目录的根目录添加了.dockerignore:
# Ignore generated files
*.pyc
Alas docker build忽略了这一点,并复制了如下所示的整个目录树:
/contextdir/
|-- Dockerfile
\-- src/
|-- a.py # this is copies - all right
\-- a.pyc # this should be ignored,but is copied too. Why?
最佳答案
最后,我理解了诀窍.出于某种原因,我无法找到任何提及这个并且没有找到任何带有这种构造的Dockerfile示例,所以在此处记录它.对其他人来说这是微不足道的吗?
https://docs.docker.com/engine/reference/builder/#/dockerignore-file处的引用不够清楚,* .pyc之类的模式仅在路径的开头匹配,或者直接在上下文目录下匹配,但不能递归.为了使它以递归方式工作,必须使用** /语法:
# Ignore generated files
**/*.pyc