我在处理该文件时遇到了问题.dockerignore。这是我的项目结构:
file.sh
file.js
file.go
file.py
subdir/
file2.go
file2.py
.dockerignore
Dockerfile
Run Code Online (Sandbox Code Playgroud)
(...)您可能想要指定要在上下文中包含哪些文件,而不是要排除哪些文件。要实现此目的,请将 * 指定为第一个模式,后跟一个或多个 ! 异常模式。
和:
以 ! 开头的行 (感叹号)可用于排除例外。
最后:
Docker 还支持特殊的通配符字符串 ** ,它可以匹配任意数量的目录(包括零)。例如, **/*.go 将排除在所有目录(包括构建上下文的根目录)中找到的所有以 .go 结尾的文件。
基于此,这是我的.dockerignore文件:
# ignore everything
*
# whitelist
# ---------
# python files
!**/*.py
Run Code Online (Sandbox Code Playgroud)
当我构建并运行容器并检查文件时,我得到以下信息:
file.py
Run Code Online (Sandbox Code Playgroud)
该subdir目录丢失,subdir/file2.py应包含在内。如果我添加!subdir/**/.py到 my .dockerignore,它就可以工作,但想法是包含.py任何子目录中的任何文件。
这是容器中应该存在的文件结构:
file.py
subdir/
file2.py
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
| 归档时间: |
|
| 查看次数: |
1806 次 |
| 最近记录: |