Ctrl K
ComunidadGuías…

builder/build/dockerfile_args.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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
}