diff --git a/pkg/build/dockerfile_helpers/dockerfile_helpers.go b/pkg/build/dockerfile_helpers/dockerfile_helpers.go index 273167470d..740811aa2f 100644 --- a/pkg/build/dockerfile_helpers/dockerfile_helpers.go +++ b/pkg/build/dockerfile_helpers/dockerfile_helpers.go @@ -18,11 +18,23 @@ func ResolveDockerStagesFromValue(stages []instructions.Stage) { } for _, cmd := range s.Commands { - copyCmd, ok := cmd.(*instructions.CopyCommand) - if ok && copyCmd.From != "" { - from := strings.ToLower(copyCmd.From) - if val, ok := nameToIndex[from]; ok { - copyCmd.From = val + switch typedCmd := cmd.(type) { + case *instructions.CopyCommand: + if typedCmd.From != "" { + from := strings.ToLower(typedCmd.From) + if val, ok := nameToIndex[from]; ok { + typedCmd.From = val + } + } + + case *instructions.RunCommand: + for _, mount := range instructions.GetMounts(typedCmd) { + if mount.From != "" { + from := strings.ToLower(mount.From) + if val, ok := nameToIndex[from]; ok { + mount.From = val + } + } } } } diff --git a/pkg/build/stage/dockerfile.go b/pkg/build/stage/dockerfile.go index 3628993612..0449491388 100644 --- a/pkg/build/stage/dockerfile.go +++ b/pkg/build/stage/dockerfile.go @@ -474,12 +474,20 @@ func (s *DockerfileStage) GetDependencies(ctx context.Context, c Conveyor, _ con } for _, cmd := range stage.Commands { - copyCmd, ok := cmd.(*instructions.CopyCommand) - if ok && copyCmd.From != "" { - relatedStageIndex, err := strconv.Atoi(copyCmd.From) + switch typedCmd := cmd.(type) { + case *instructions.CopyCommand: + relatedStageIndex, err := strconv.Atoi(typedCmd.From) if err == nil && relatedStageIndex < len(stagesDependencies) { stagesDependencies[ind] = append(stagesDependencies[ind], stagesDependencies[relatedStageIndex]...) } + + case *instructions.RunCommand: + for _, mount := range instructions.GetMounts(typedCmd) { + relatedStageIndex, err := strconv.Atoi(mount.From) + if err == nil && relatedStageIndex < len(stagesDependencies) { + stagesDependencies[ind] = append(stagesDependencies[ind], stagesDependencies[relatedStageIndex]...) + } + } } } }