總目錄索引: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