builder/build/dockerfile_args.go
Rama main · réplica de lectura del repositorio original.
package build
import (
"fmt"
"sort"
"strings"
)
// Console stores BUILD_ARG_* keys. Older callers send ARG_* directly; accept
// both, with Console's explicit value taking precedence even when it is empty.
func dockerfileBuildArgs(envs map[string]string) []string {
values := make(map[string]string)
for _, prefix := range []string{"ARG_", "BUILD_ARG_"} {
for key, value := range envs {
if strings.HasPrefix(key, prefix) {
name := strings.TrimPrefix(key, prefix)
if name != "" {
values[name] = value
}
}
}
}
names := make([]string, 0, len(values))
for name := range values {
names = append(names, name)
}
sort.Strings(names)
args := make([]string, 0, len(names))
for _, name := range names {
args = append(args, fmt.Sprintf("--opt=build-arg:%s=%s", name, values[name]))
}
return args
}