From 8f6b562786a7ea92d8208bb6181b621c2c9373f9 Mon Sep 17 00:00:00 2001 From: Timofey Kirillov Date: Thu, 17 Nov 2022 12:59:43 +0300 Subject: [PATCH] fix(staged-dockerfile): fix meta args always expands to empty strings Signed-off-by: Timofey Kirillov --- pkg/dockerfile/frontend/buildkit_dockerfile.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/dockerfile/frontend/buildkit_dockerfile.go b/pkg/dockerfile/frontend/buildkit_dockerfile.go index 856511c58d..8d2b0d4dbb 100644 --- a/pkg/dockerfile/frontend/buildkit_dockerfile.go +++ b/pkg/dockerfile/frontend/buildkit_dockerfile.go @@ -18,14 +18,14 @@ func ParseDockerfileWithBuildkit(dockerfileBytes []byte, opts dockerfile.Dockerf return nil, fmt.Errorf("parsing dockerfile data: %w", err) } - dockerStages, dockerMetaArgs, err := instructions.Parse(p.AST) + dockerStages, dockerMetaArgsCommands, err := instructions.Parse(p.AST) if err != nil { return nil, fmt.Errorf("parsing instructions tree: %w", err) } expanderFactory := NewShlexExpanderFactory(p.EscapeToken) - metaArgs, err := resolveMetaArgs(dockerMetaArgs, opts.BuildArgs, opts.DependenciesArgsKeys, expanderFactory) + metaArgs, err := resolveMetaArgs(dockerMetaArgsCommands, opts.BuildArgs, opts.DependenciesArgsKeys, expanderFactory) if err != nil { return nil, fmt.Errorf("unable to process meta args: %w", err) } @@ -233,7 +233,7 @@ func removeDependenciesArgs(args []instructions.KeyValuePairOptional, dependenci return } -func resolveMetaArgs(metaArgs []instructions.ArgCommand, buildArgs map[string]string, dependenciesArgsKeys []string, expanderFactory *ShlexExpanderFactory) (map[string]string, error) { +func resolveMetaArgs(metaArgsCommands []instructions.ArgCommand, buildArgs map[string]string, dependenciesArgsKeys []string, expanderFactory *ShlexExpanderFactory) (map[string]string, error) { var optMetaArgs []instructions.KeyValuePairOptional // TODO(staged-dockerfile): need to support builtin BUILD* and TARGET* args @@ -244,7 +244,7 @@ func resolveMetaArgs(metaArgs []instructions.ArgCommand, buildArgs map[string]st // optMetaArgs[i] = setKVValue(arg, opt.BuildArgs) // } - for _, cmd := range metaArgs { + for _, cmd := range metaArgsCommands { for _, metaArg := range cmd.Args { if isDependencyArg(metaArg.Key, dependenciesArgsKeys) { continue @@ -257,7 +257,7 @@ func resolveMetaArgs(metaArgs []instructions.ArgCommand, buildArgs map[string]st } } - return nil, nil + return metaArgsToMap(optMetaArgs), nil } func metaArgsToMap(metaArgs []instructions.KeyValuePairOptional) map[string]string {