在docker CLI将上下文发送到docker守护程序之前,它会在上下文的根目录中查找名为.dockerignore的文件。如果此文件存在,则CLI会修改上下文以排除与其中的模式匹配的文件和目录。这有助于避免不必要地将大型文件或敏感文件和目录发送到守护程序,并避免使用ADD或将它们添加到映像中COPY。
CLI将.dockerignore文件解释为以换行符分隔的模式列表,类似于Unix Shell的文件组。为了匹配,上下文的根被认为是工作目录和根目录。例如,路径 /foo/bar和foo/bar两个排除命名的文件或目录bar 的foo子目录PATH或位于Git仓库的根URL。两者都不排除其他任何东西。
如果.dockerignore文件中的一行以第#1列开头,则该行将被视为注释,并且在CLI解释之前将被忽略。
这是一个示例.dockerignore文件:
# comment
*/temp*
*/*/temp*
temp?
此文件导致以下生成行为:
使用Go的filepath.Match规则进行匹配 。预处理步骤使用Go的filepath.Clean除去开头和结尾的空格,并消除.和..元素 。预处理后空白的行将被忽略。
除了Go的filepath.Match规则外,Docker还支持一个特殊的通配符字符串**,该字符串匹配任意数量的目录(包括零个)。例如,**/*.go将排除.go 在所有目录(包括构建上下文的根目录)中找到的所有以结尾结尾的文件。
以!(感叹号)开头的行可用于排除例外。以下是.dockerignore使用此机制的示例文件:
*.md
!README.md
除 README.md上下文之外,所有.md文件都排除在外。
(免责声明:本网站内容主要来自原创、合作媒体供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )
相关阅读
- 植物医生冲刺IPO,31年积淀树国货美妆标杆
- 植物医生IPO获受理,美妆品牌升级再发力
- 吉利银河A7预售10.38万元起,首搭雷神AI电混2.0,油耗低至2L
- TATA木门建博会三大变革:静音技术破圈+轻资产招商+卫星店盈利模型落地
- TATA木门高调亮相建博会以静音创新勾勒美好人居新图景
- 建博会论道:从TATA木门革新到家居生态 重构行业变革聚势燎原
- 广州建博会首日 TATA木门“门启新境”演绎家居革新进化论
- 第27届广州建博会启幕在即 TATA木门三大变革再启新境
- 2025广州建博会将至!TATA木门携“王炸”产品阵容强势来袭
- WEC 2025 世界算力博览会落地鄂尔多斯:汇聚全球算力智慧,共绘产业升级新图景