mirror of
https://github.com/containers/podman.git
synced 2025-06-23 18:59:30 +08:00
Fix namespace flag parsing for podman build
The namespace options for pid,ipc,uts were completely ignored. The network namespace did not accept `none`. This commit fixes these issues simply by calling `parse.NamespaceOptions` from buildah instead of implementing our own logic. Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
This commit is contained in:
@ -14,7 +14,6 @@ import (
|
||||
"github.com/containers/podman/v2/cmd/podman/utils"
|
||||
"github.com/containers/podman/v2/pkg/domain/entities"
|
||||
"github.com/docker/go-units"
|
||||
"github.com/opencontainers/runtime-spec/specs-go"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/spf13/cobra"
|
||||
@ -315,22 +314,11 @@ func buildFlagsWrapperToOptions(c *cobra.Command, contextDir string, flags *buil
|
||||
}
|
||||
}
|
||||
|
||||
nsValues, err := getNsValues(flags)
|
||||
nsValues, networkPolicy, err := parse.NamespaceOptions(c)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
networkPolicy := buildah.NetworkDefault
|
||||
for _, ns := range nsValues {
|
||||
if ns.Name == "none" {
|
||||
networkPolicy = buildah.NetworkDisabled
|
||||
break
|
||||
} else if !filepath.IsAbs(ns.Path) {
|
||||
networkPolicy = buildah.NetworkEnabled
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// `buildah bud --layers=false` acts like `docker build --squash` does.
|
||||
// That is all of the new layers created during the build process are
|
||||
// condensed into one, any layers present prior to this build are retained
|
||||
@ -451,28 +439,3 @@ func buildFlagsWrapperToOptions(c *cobra.Command, contextDir string, flags *buil
|
||||
|
||||
return &entities.BuildOptions{BuildOptions: opts}, nil
|
||||
}
|
||||
|
||||
func getNsValues(flags *buildFlagsWrapper) ([]buildah.NamespaceOption, error) {
|
||||
var ret []buildah.NamespaceOption
|
||||
if flags.Network != "" {
|
||||
switch {
|
||||
case flags.Network == "host":
|
||||
ret = append(ret, buildah.NamespaceOption{
|
||||
Name: string(specs.NetworkNamespace),
|
||||
Host: true,
|
||||
})
|
||||
case flags.Network == "container":
|
||||
ret = append(ret, buildah.NamespaceOption{
|
||||
Name: string(specs.NetworkNamespace),
|
||||
})
|
||||
case flags.Network[0] == '/':
|
||||
ret = append(ret, buildah.NamespaceOption{
|
||||
Name: string(specs.NetworkNamespace),
|
||||
Path: flags.Network,
|
||||
})
|
||||
default:
|
||||
return nil, errors.Errorf("unsupported configuration network=%s", flags.Network)
|
||||
}
|
||||
}
|
||||
return ret, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user