build: load default build args from env

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
Tonis Tiigi
2019-07-30 16:32:36 -07:00
parent 3f18b659a0
commit 43150ef849
2 changed files with 11 additions and 4 deletions

View File

@ -84,8 +84,8 @@ func runBuild(dockerCli command.Cli, in buildOptions) error {
InStream: os.Stdin,
},
Tags: in.tags,
Labels: listToMap(in.labels),
BuildArgs: listToMap(in.buildArgs),
Labels: listToMap(in.labels, false),
BuildArgs: listToMap(in.buildArgs, true),
Pull: in.pull,
NoCache: in.noCache,
Target: in.target,
@ -282,12 +282,16 @@ func commonFlags(options *commonOptions, flags *pflag.FlagSet) {
flags.BoolVar(&options.pull, "pull", false, "Always attempt to pull a newer version of the image")
}
func listToMap(values []string) map[string]string {
func listToMap(values []string, defaultEnv bool) map[string]string {
result := make(map[string]string, len(values))
for _, value := range values {
kv := strings.SplitN(value, "=", 2)
if len(kv) == 1 {
result[kv[0]] = ""
if defaultEnv {
result[kv[0]] = os.Getenv(kv[0])
} else {
result[kv[0]] = ""
}
} else {
result[kv[0]] = kv[1]
}