我正在尝试从我的Docker镜像中排除项目所有目录中的所有隐藏文件(以点开头)。
要排除.git和.gitingore:.git*
要排除所有.keep文件:**/.keep works
对于所有隐藏的文件,我尝试了:**/.*,但这会像**/*.*那样排除所有包含点的文件。
发布于 2017-02-23 06:03:59
.dockerignore files尝试遵循Go的filepath.Match规则,添加一个类似**的glob来匹配路径中的任何目录。因此,它们与glob模式并不完全相同,甚至不完全相同。事实上,Docker实现了its own parser,所以它甚至不再使用filepath.Match了。
使用dir/.*和dir/*/.*的效果与预期一致。但是dir/**/.*似乎并不总是有效的。
这个specific issue should be resolved,但我想在某些情况下我在1.13.1中也看到过同样的行为。
因此,如果.dockerignore为dir/**/.*,则文件dir/file.ext将被排除,但将包括dir/subdir/file.ext。
这可能值得打开一个new issue with Docker if you have a specific reproducible case on 1.13。
发布于 2017-02-24 21:41:56
The issue has been fixed,但提交尚未合并到已发布的分支中。
https://stackoverflow.com/questions/42402236
复制相似问题