mirror of
https://github.com/containers/podman.git
synced 2025-09-27 00:34:32 +08:00
Vendor in containers/buildah v1.14.3
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
84
vendor/github.com/openshift/imagebuilder/dispatchers.go
generated
vendored
84
vendor/github.com/openshift/imagebuilder/dispatchers.go
generated
vendored
@ -19,6 +19,7 @@ import (
|
||||
|
||||
docker "github.com/fsouza/go-dockerclient"
|
||||
|
||||
"github.com/containerd/containerd/platforms"
|
||||
"github.com/openshift/imagebuilder/signal"
|
||||
"github.com/openshift/imagebuilder/strslice"
|
||||
)
|
||||
@ -27,6 +28,27 @@ var (
|
||||
obRgex = regexp.MustCompile(`(?i)^\s*ONBUILD\s*`)
|
||||
)
|
||||
|
||||
var localspec = platforms.DefaultSpec()
|
||||
|
||||
// https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
|
||||
var builtinBuildArgs = map[string]string{
|
||||
"TARGETPLATFORM": localspec.OS + "/" + localspec.Architecture,
|
||||
"TARGETOS": localspec.OS,
|
||||
"TARGETARCH": localspec.Architecture,
|
||||
"TARGETVARIANT": localspec.Variant,
|
||||
"BUILDPLATFORM": localspec.OS + "/" + localspec.Architecture,
|
||||
"BUILDOS": localspec.OS,
|
||||
"BUILDARCH": localspec.Architecture,
|
||||
"BUILDVARIANT": localspec.Variant,
|
||||
}
|
||||
|
||||
func init() {
|
||||
if localspec.Variant != "" {
|
||||
builtinBuildArgs["TARGETPLATFORM"] = builtinBuildArgs["TARGETPLATFORM"] + "/" + localspec.Variant
|
||||
builtinBuildArgs["BUILDPLATFORM"] = builtinBuildArgs["BUILDPLATFORM"] + "/" + localspec.Variant
|
||||
}
|
||||
}
|
||||
|
||||
// ENV foo bar
|
||||
//
|
||||
// Sets the environment variable foo to bar, also makes interpolation
|
||||
@ -131,14 +153,16 @@ func add(b *Builder, args []string, attributes map[string]bool, flagArgs []strin
|
||||
var chown string
|
||||
last := len(args) - 1
|
||||
dest := makeAbsolute(args[last], b.RunConfig.WorkingDir)
|
||||
if len(flagArgs) > 0 {
|
||||
for _, arg := range flagArgs {
|
||||
switch {
|
||||
case strings.HasPrefix(arg, "--chown="):
|
||||
chown = strings.TrimPrefix(arg, "--chown=")
|
||||
default:
|
||||
return fmt.Errorf("ADD only supports the --chown=<uid:gid> flag")
|
||||
}
|
||||
for _, a := range flagArgs {
|
||||
arg, err := ProcessWord(a, b.Env)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
switch {
|
||||
case strings.HasPrefix(arg, "--chown="):
|
||||
chown = strings.TrimPrefix(arg, "--chown=")
|
||||
default:
|
||||
return fmt.Errorf("ADD only supports the --chown=<uid:gid> flag")
|
||||
}
|
||||
}
|
||||
b.PendingCopies = append(b.PendingCopies, Copy{Src: args[0:last], Dest: dest, Download: true, Chown: chown})
|
||||
@ -157,16 +181,18 @@ func dispatchCopy(b *Builder, args []string, attributes map[string]bool, flagArg
|
||||
dest := makeAbsolute(args[last], b.RunConfig.WorkingDir)
|
||||
var chown string
|
||||
var from string
|
||||
if len(flagArgs) > 0 {
|
||||
for _, arg := range flagArgs {
|
||||
switch {
|
||||
case strings.HasPrefix(arg, "--chown="):
|
||||
chown = strings.TrimPrefix(arg, "--chown=")
|
||||
case strings.HasPrefix(arg, "--from="):
|
||||
from = strings.TrimPrefix(arg, "--from=")
|
||||
default:
|
||||
return fmt.Errorf("COPY only supports the --chown=<uid:gid> and the --from=<image|stage> flags")
|
||||
}
|
||||
for _, a := range flagArgs {
|
||||
arg, err := ProcessWord(a, b.Env)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
switch {
|
||||
case strings.HasPrefix(arg, "--chown="):
|
||||
chown = strings.TrimPrefix(arg, "--chown=")
|
||||
case strings.HasPrefix(arg, "--from="):
|
||||
from = strings.TrimPrefix(arg, "--from=")
|
||||
default:
|
||||
return fmt.Errorf("COPY only supports the --chown=<uid:gid> and the --from=<image|stage> flags")
|
||||
}
|
||||
}
|
||||
b.PendingCopies = append(b.PendingCopies, Copy{From: from, Src: args[0:last], Dest: dest, Download: false, Chown: chown})
|
||||
@ -516,6 +542,8 @@ func healthcheck(b *Builder, args []string, attributes map[string]bool, flagArgs
|
||||
return nil
|
||||
}
|
||||
|
||||
var targetArgs = []string{"TARGETOS", "TARGETARCH", "TARGETVARIANT"}
|
||||
|
||||
// ARG name[=value]
|
||||
//
|
||||
// Adds the variable foo to the trusted list of variables that can be passed
|
||||
@ -543,6 +571,26 @@ func arg(b *Builder, args []string, attributes map[string]bool, flagArgs []strin
|
||||
name = parts[0]
|
||||
value = parts[1]
|
||||
hasDefault = true
|
||||
if name == "TARGETPLATFORM" {
|
||||
p, err := platforms.Parse(value)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error parsing TARGETPLATFORM argument")
|
||||
}
|
||||
for _, val := range targetArgs {
|
||||
b.AllowedArgs[val] = true
|
||||
}
|
||||
b.Args["TARGETPLATFORM"] = p.OS + "/" + p.Architecture
|
||||
b.Args["TARGETOS"] = p.OS
|
||||
b.Args["TARGETARCH"] = p.Architecture
|
||||
b.Args["TARGETVARIANT"] = p.Variant
|
||||
if p.Variant != "" {
|
||||
b.Args["TARGETPLATFORM"] = b.Args["TARGETPLATFORM"] + "/" + p.Variant
|
||||
}
|
||||
}
|
||||
} else if val, ok := builtinBuildArgs[arg]; ok {
|
||||
name = arg
|
||||
value = val
|
||||
hasDefault = true
|
||||
} else {
|
||||
name = arg
|
||||
hasDefault = false
|
||||
|
Reference in New Issue
Block a user