总目录索引:K8s从入门到放弃系列
该.dockerignore文件是隐藏文件也是一个工具,可以帮助你定义你真正需要的Docker构建上下文。使用此文件,你可以为这些文件和文件夹规则指定忽略规则和异常,这些规则和异常将不包含在构建上下文中,因此不会打包到存档中并上载到Docker服务器。
1、dockerignore语法
该.dockerignore文件类似于gitignore该git工具使用的文件。与.gitignore文件类似,它允许你为生成构建上下文时Docker客户端应忽略的文件和文件夹指定模式。虽然.dockerignore用于描述忽略模式的文件语法类似于.gitignore,但它并不相同。
该.dockerignore模式匹配的语法是基于filepath.Match()和filepath.clean的功能,包括一些补充。如:
Docker还支持一个**匹配任意数量目录(包括零)的特殊通配符字符串。例如,**/*.go将排除.go 在所有目录中找到的以该结尾的所有文件,包括构建上下文的根。
2、以下是完整的语法.dockerignore:
pattern: {term} 术语: '*' 匹配任何非分隔符字符序列 '?' 匹配任何单个非分隔符 '['['^'] {character-range}']' 字符类(必须是非空的) c匹配字符c (c!='*','?','\\','[') '\\' c匹配字符c 字符范围: c匹配字符c (c!='\\',' - ',']') '\\' c匹配字符c lo' - 'hi匹配字符c for lo< = c< = hi 补充: '**' 匹配任意数量的目录(包括零) '!' 行开头! (感叹号)可用于排除例外情况 以此字符开头的'#'行将被忽略:将其用于评论
3、示例
#ignore除了README-secret.md以外的所有README*.md和旁边的所有markdown文件(md)格式的都不要 *.MD !README*.MD README-secret.md #ignore所有文件夹中的所有*.class文件,包括构建根目录 **/*.class #ignore .git和.cache文件夹 .git .cache # 排除名称以temp根目录的任何直接子目录开头的文件或者目录,如/somedir/tempfile.txt,录/somedir/temp/ */temp* # temp从以下两级以下的任何子目录开始排除文件和目录。例如,/somedir/subdir/temporary.txt被排除在外。 */*/temp* # 排除根目录中的文件和目录,其名称是单字符扩展名temp。例如,/tempa与/tempb被排除在外 temp?
参考文章:https://www.linuxea.com/2297.html