build: load default build args from env

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
pull/116/head
Tonis Tiigi 6 years ago
parent 3f18b659a0
commit 43150ef849

@ -2,6 +2,7 @@ package bake
import (
"fmt"
"os"
"reflect"
"github.com/docker/cli/cli/compose/loader"
@ -86,6 +87,8 @@ func toMap(in composetypes.MappingWithEquals) map[string]string {
for k, v := range in {
if v != nil {
m[k] = *v
} else {
m[k] = os.Getenv(k)
}
}
return m

@ -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]
}

Loading…
Cancel
Save