Skip to content

Commit

Permalink
[dockerignore] Fix pattern with starting double asterisks does not wo…
Browse files Browse the repository at this point in the history
…rk properly

* The pattern does not check root files
  • Loading branch information
alexey-igrychev authored and distorhead committed Aug 20, 2019
1 parent aa391d7 commit d7f565e
Showing 1 changed file with 24 additions and 7 deletions.
31 changes: 24 additions & 7 deletions pkg/build/initialization_phase.go
Original file line number Diff line number Diff line change
Expand Up @@ -595,15 +595,32 @@ func prepareImageBasedOnImageFromDockerfile(imageFromDockerfileConfig *config.Im
}

var dockerignorePatternsWithContextPrefix []string
for _, pattern := range dockerignorePatterns {
var resultPattern string
if strings.HasPrefix(pattern, "!") {
resultPattern = "!" + path.Join(contextDir, pattern[1:])
} else {
resultPattern = path.Join(contextDir, pattern)
for _, dockerignorePattern := range dockerignorePatterns {
patterns := []string{dockerignorePattern}
specialPrefixes := []string{
"**/",
"/**/",
"!**/",
"!/**/",
}

dockerignorePatternsWithContextPrefix = append(dockerignorePatternsWithContextPrefix, resultPattern)
for _, prefix := range specialPrefixes {
if strings.HasPrefix(dockerignorePattern, prefix) {
patterns = append(patterns, strings.Replace(dockerignorePattern, "**/", "", 1))
break
}
}

for _, pattern := range patterns {
var resultPattern string
if strings.HasPrefix(pattern, "!") {
resultPattern = "!" + path.Join(contextDir, pattern[1:])
} else {
resultPattern = path.Join(contextDir, pattern)
}

dockerignorePatternsWithContextPrefix = append(dockerignorePatternsWithContextPrefix, resultPattern)
}
}

dockerignorePatternMatcher, err := fileutils.NewPatternMatcher(dockerignorePatternsWithContextPrefix)
Expand Down

0 comments on commit d7f565e

Please sign in to comment.