diff --git a/pkg/build/stage/imports.go b/pkg/build/stage/imports.go index fe634a7736..965535ef7f 100644 --- a/pkg/build/stage/imports.go +++ b/pkg/build/stage/imports.go @@ -186,7 +186,12 @@ func generateChecksumCommand(from string, includePaths, excludePaths []string, r var nameIncludeArgs []string for _, includePath := range includePaths { - nameIncludeArgs = append(nameIncludeArgs, fmt.Sprintf("-wholename \"%s\"", path.Join(from, includePath))) + formattedPath := formatIncludeAndExcludePath(includePath) + nameIncludeArgs = append( + nameIncludeArgs, + fmt.Sprintf("-wholename \"%s\"", path.Join(from, formattedPath)), + fmt.Sprintf("-wholename \"%s\"", path.Join(from, formattedPath, "**")), + ) } if len(nameIncludeArgs) != 0 { @@ -195,7 +200,12 @@ func generateChecksumCommand(from string, includePaths, excludePaths []string, r var nameExcludeArgs []string for _, excludePath := range excludePaths { - nameExcludeArgs = append(nameExcludeArgs, fmt.Sprintf("! -wholename \"%s\"", path.Join(from, excludePath))) + formattedPath := formatIncludeAndExcludePath(excludePath) + nameExcludeArgs = append( + nameExcludeArgs, + fmt.Sprintf("! -wholename \"%s\"", path.Join(from, formattedPath)), + fmt.Sprintf("! -wholename \"%s\"", path.Join(from, formattedPath, "**")), + ) } if len(nameExcludeArgs) != 0 { @@ -225,6 +235,10 @@ func generateChecksumCommand(from string, includePaths, excludePaths []string, r return command } +func formatIncludeAndExcludePath(path string) string { + return strings.TrimRight(path, "*/") +} + func getImportID(importElm *config.Import) string { return util.Sha256Hash( "ImageName", importElm.ImageName,