用.dockerignore排除所有隐藏的文件
我试图从项目的所有目录中的Docker镜像中排除所有隐藏文件(以点开头)。
要排除.git
和.gitingore
: .git*
要排除所有的.keep
文件: **/.keep
工作
对于所有隐藏的文件,我尝试过: **/.*
,但不包括所有包含点的文件,如**/*.*
。
.dockerignore文件尝试按照Go的filepath.Match规则添加一个像glob匹配path中的任何目录。 所以他们不是完全一样的全局模式,甚至试图成为。 事实上,Docker实现了它自己的parsing器,所以它甚至不使用filepath.Match
。
使用dir/.*
和dir/*/.*
按预期工作。 但是dir/**/.*
似乎并不是一直工作的。
应该解决这个特定的问题,但是我认为在某些情况下我在1.13.1中看到了相同的行为。
因此,对于dir/**/.*
,文件dir/file.ext
将被排除,但将包括dir/subdir/file.ext
。
如果你在1.13上有一个特定的可重复的情况,这可能是值得开启Docker的一个新的问题
这个问题已经解决了,但是提交还没有被合并到已发布的分支中。