您的位置: 新闻中心 >文章正文

云计算核心技术Docker教程:.dockerignore文件介绍

在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?

此文件导致以下生成行为:

271111111111

使用Go的filepath.Match规则进行匹配 。预处理步骤使用Go的filepath.Clean除去开头和结尾的空格,并消除.和..元素 。预处理后空白的行将被忽略。

除了Go的filepath.Match规则外,Docker还支持一个特殊的通配符字符串**,该字符串匹配任意数量的目录(包括零个)。例如,**/*.go将排除.go 在所有目录(包括构建上下文的根目录)中找到的所有以结尾结尾的文件。

以!(感叹号)开头的行可用于排除例外。以下是.dockerignore使用此机制的示例文件:

*.md

!README.md

除 README.md上下文之外,所有.md文件都排除在外。

(免责声明:本网站内容主要来自原创、合作媒体供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )

相关阅读

网站简介 - 网站声明 - 合作伙伴 - 联系我们

中文科技视界网    www.ctechw.com

Copyright © 2016-2020 中文科技视界网

网站备案号:鄂ICP备18014829号-1