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
|
ARG file2=context/bar/bat
|
||||||
COPY $file2 /bat
|
COPY $file2 /bat
|
||||||
# Check that overriding a default value works
|
# 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
|
COPY $file3 /baz
|
||||||
# Check that setting an ENV will override the ARG
|
# Check that setting an ENV will override the ARG
|
||||||
ENV file context/bar/bam/bat
|
ENV file context/bar/bam/bat
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ package commands
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/GoogleContainerTools/kaniko/pkg/dockerfile"
|
"github.com/GoogleContainerTools/kaniko/pkg/dockerfile"
|
||||||
|
"github.com/GoogleContainerTools/kaniko/pkg/util"
|
||||||
"github.com/docker/docker/builder/dockerfile/instructions"
|
"github.com/docker/docker/builder/dockerfile/instructions"
|
||||||
"github.com/google/go-containerregistry/v1"
|
"github.com/google/go-containerregistry/v1"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
|
|
@ -31,7 +32,20 @@ type ArgCommand struct {
|
||||||
// ExecuteCommand only needs to add this ARG key/value as seen
|
// ExecuteCommand only needs to add this ARG key/value as seen
|
||||||
func (r *ArgCommand) ExecuteCommand(config *v1.Config, buildArgs *dockerfile.BuildArgs) error {
|
func (r *ArgCommand) ExecuteCommand(config *v1.Config, buildArgs *dockerfile.BuildArgs) error {
|
||||||
logrus.Info("ARG")
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue