摘要:在docker CLI将上下文发送到docker守护程序之前,它会在上下文的根目录中查找名为.dockerignore的文件。如果此文件存在,则CLI会修改上下文以排除与其中的模式匹配的文件和目录
在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文件都排除在外。
相关文章推荐
智能手机建站的优点是什么?网站页面布局有哪些关键点? 2022-01-10
2022年中国云计算面临的问题及发展前景预测分析2021-12-28
绿色智能基础设施连接可持续未来-IDCC2021万国数据第一代Smart DC发布会议程揭晓2021-12-27
阿里云:早期未意识到Apache log4j2漏洞情况的严重性 将强化漏洞管理2021-12-27
云计算开发:Python3-replace()方法详解2021-12-27