Resolve environment replacement for arg
This commit is contained in:
parent
e673e36576
commit
d6bb88f924
|
|
@ -6,7 +6,9 @@ COPY $file /foo
|
|||
ARG file2=context/bar/bat
|
||||
COPY $file2 /bat
|
||||
# Check that overriding a default value works
|
||||
ARG file3=context/bar/baz
|
||||
ENV baz baz
|
||||
ENV src file3
|
||||
ARG ${src}=context/bar/${baz}
|
||||
COPY $file3 /baz
|
||||
# Check that setting an ENV will override the ARG
|
||||
ENV file context/bar/bam/bat
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ package commands
|
|||
|
||||
import (
|
||||
"github.com/GoogleContainerTools/kaniko/pkg/dockerfile"
|
||||
"github.com/GoogleContainerTools/kaniko/pkg/util"
|
||||
"github.com/docker/docker/builder/dockerfile/instructions"
|
||||
"github.com/google/go-containerregistry/v1"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
|
@ -31,7 +32,20 @@ type ArgCommand struct {
|
|||
// ExecuteCommand only needs to add this ARG key/value as seen
|
||||
func (r *ArgCommand) ExecuteCommand(config *v1.Config, buildArgs *dockerfile.BuildArgs) error {
|
||||
logrus.Info("ARG")
|
||||
buildArgs.AddArg(r.cmd.Key, r.cmd.Value)
|
||||
replacementEnvs := buildArgs.ReplacementEnvs(config.Env)
|
||||
resolvedKey, err := util.ResolveEnvironmentReplacement(r.cmd.Key, replacementEnvs, false)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
var resolvedValue *string
|
||||
if r.cmd.Value != nil {
|
||||
value, err := util.ResolveEnvironmentReplacement(*r.cmd.Value, replacementEnvs, false)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
resolvedValue = &value
|
||||
}
|
||||
buildArgs.AddArg(resolvedKey, resolvedValue)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue