Docker 24.0.5中能否将通用.dockerignore放在构建上下文外?
Docker .dockerignore 文件位置规则(24.0.5版本)
核心规则说明
- 标准
.dockerignore必须放在构建上下文的根目录中,Docker不会像Git等工具那样向上遍历文件系统查找通用忽略文件,上下文之外的.dockerignore完全不会被识别。 - 对于自定义命名的Dockerfile(比如
Dockerfile.foo),对应的忽略文件必须和该Dockerfile处于同一目录,命名格式为{Dockerfile名称}.dockerignore(例如Dockerfile.foo.dockerignore),这是24.0.5版本的实际生效规则。
实现通用忽略规则的替代方案
如果想避免在client和server目录重复维护多份.dockerignore,可以用以下两种方式:
- 在项目根目录创建一个通用的
.dockerignore.template文件,然后在client、server目录下创建软链接指向这个模板文件,Docker会正常读取软链接指向的内容。 - 编写简单的构建脚本,在执行
docker build前,将通用的忽略规则复制到各个需要的目录中。
内容的提问来源于stack exchange,提问作者lonix
相关产品推荐
相关产品推荐

