diff --git a/pkg/build/builder/util/dockerfile/dockerfile.go b/pkg/build/builder/util/dockerfile/dockerfile.go index 6b0292cbfc..f671795282 100644 --- a/pkg/build/builder/util/dockerfile/dockerfile.go +++ b/pkg/build/builder/util/dockerfile/dockerfile.go @@ -62,6 +62,11 @@ func Write(node *parser.Node) []byte { } buf.Write([]byte(n.Value)) } + for _, heredoc := range node.Heredocs { + buf.Write([]byte(heredoc.Content)) + buf.Write([]byte("\n")) + buf.Write([]byte(heredoc.Name)) + } buf.Write([]byte("\n")) return buf.Bytes() } diff --git a/pkg/build/builder/util/dockerfile/dockerfile_test.go b/pkg/build/builder/util/dockerfile/dockerfile_test.go index a734e54721..2bf9240cf1 100644 --- a/pkg/build/builder/util/dockerfile/dockerfile_test.go +++ b/pkg/build/builder/util/dockerfile/dockerfile_test.go @@ -92,6 +92,36 @@ CMD ["-c","env"] USER 1001 WORKDIR /home HEALTHCHECK --interval=60s --timeout=10s CMD ["/usr/bin/true"] +`, + }, + "Dockerfile with heredoc": { + in: `# This is a Dockerfile +FROM scratch +LABEL version=1.0 +# Here we start building a second image +FROM busybox +ENV PATH=/bin +RUN <