Docker Ignore中/target与**/target的差异解析
.dockerignore中
/target与**/target规则的差异 这两个规则的核心区别在于匹配范围的不同:
/target:仅匹配项目根目录下直接存在的target(文件或文件夹)。它是根路径的精确匹配,不会递归处理子目录里的同名内容。比如根目录的./target/会被排除,但./src/target/、./module/sub/target/这类嵌套子目录里的target完全不受影响。**/target:属于全局递归匹配,会排查项目里所有层级目录下的target(包括根目录和任意深度的子目录)。不管target是在根目录,还是藏在N级子文件夹里,都会被Docker构建时排除。
举个直观的项目结构例子:
my-project/ ├── target/ # 会被两个规则都排除 ├── src/ │ └── target/ # 仅被`**/target`排除 └── module/ └── sub-module/ └── target/ # 仅被`**/target`排除
内容的提问来源于stack exchange,提问作者Shehryar Tariq
相关产品推荐
相关产品推荐

