diff --git a/pkg/helpers/newapp/docker/dockerfile/dockerfile.go b/pkg/helpers/newapp/docker/dockerfile/dockerfile.go index 2d96d85d13..20f2e9761e 100644 --- a/pkg/helpers/newapp/docker/dockerfile/dockerfile.go +++ b/pkg/helpers/newapp/docker/dockerfile/dockerfile.go @@ -69,7 +69,10 @@ func LastBaseImage(node *parser.Node) string { func baseImages(node *parser.Node) []string { var images []string for _, pos := range FindAll(node, command.From) { - images = append(images, nextValues(node.Children[pos])...) + if node.Children[pos].Next == nil { + continue + } + images = append(images, node.Children[pos].Next.Value) } return images } diff --git a/pkg/helpers/newapp/docker/dockerfile/dockerfile_test.go b/pkg/helpers/newapp/docker/dockerfile/dockerfile_test.go index 5c17ccb7c9..ac061e70c6 100644 --- a/pkg/helpers/newapp/docker/dockerfile/dockerfile_test.go +++ b/pkg/helpers/newapp/docker/dockerfile/dockerfile_test.go @@ -245,6 +245,16 @@ COPY . /boot FROM centos:7`, want: []string{"scratch", "centos:7"}, }, + "single FROM with alias": { + in: `FROM golang AS builder`, + want: []string{"golang"}, + }, + "multiple FROM with aliases": { + in: `FROM scratch AS builder +COPY . /boot +FROM centos:7 as runner`, + want: []string{"scratch", "centos:7"}, + }, } for name, tc := range testCases { node, err := parser.Parse(strings.NewReader(tc.in))