in scan/dependencies.go [32:66]
func (s *Scanner) ScanForDependencies(context string, workingDir string, dockerfile string, buildArgs []string, pushTo []string, target string) (deps []*image.Dependencies, err error) {
dockerfilePath := createDockerfilePath(context, workingDir, dockerfile)
file, err := os.Open(dockerfilePath)
if err != nil {
return deps, fmt.Errorf("error opening dockerfile: %s, error: %v", dockerfilePath, err)
}
defer func() { _ = file.Close() }()
runtime, buildtime, err := resolveDockerfileDependencies(file, buildArgs, target)
if err != nil {
return deps, err
}
// Even though there's nothing to push to, we always invoke NewImageDependencies
// TODO: refactor this in the future to take in the full list as opposed to individual
// images.
var currDep *image.Dependencies
if len(pushTo) == 0 {
currDep, err = s.NewImageDependencies("", runtime, buildtime)
if err != nil {
return nil, err
}
deps = append(deps, currDep)
}
for _, imageName := range pushTo {
currDep, err = s.NewImageDependencies(imageName, runtime, buildtime)
if err != nil {
return nil, err
}
deps = append(deps, currDep)
}
return deps, err
}