diff --git a/builder/context.go b/builder/context.go index 53a90f1be2..3b5cc2a297 100644 --- a/builder/context.go +++ b/builder/context.go @@ -29,6 +29,16 @@ func ValidateContextDirectory(srcPath string, excludes []string) error { return err } return filepath.Walk(contextRoot, func(filePath string, f os.FileInfo, err error) error { + if err != nil { + if os.IsPermission(err) { + return fmt.Errorf("can't stat '%s'", filePath) + } + if os.IsNotExist(err) { + return nil + } + return err + } + // skip this directory/file if it's not in the path, it won't get added to the context if relFilePath, err := filepath.Rel(contextRoot, filePath); err != nil { return err @@ -41,16 +51,6 @@ func ValidateContextDirectory(srcPath string, excludes []string) error { return nil } - if err != nil { - if os.IsPermission(err) { - return fmt.Errorf("can't stat '%s'", filePath) - } - if os.IsNotExist(err) { - return nil - } - return err - } - // skip checking if symlinks point to non-existing files, such symlinks can be useful // also skip named pipes, because they hanging on open if f.Mode()&(os.ModeSymlink|os.ModeNamedPipe) != 0 {