From 2fd6a84c09c4361c16f0bfe086dd4a190c5635b3 Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Wed, 22 Apr 2020 12:37:25 +0200 Subject: specgen: do not always set shmsize if it wasn't overriden on the CLI, leave it undefined. Signed-off-by: Giuseppe Scrivano --- cmd/podman/common/create.go | 3 ++- cmd/podman/common/specgen.go | 10 ++++++---- cmd/podman/containers/create.go | 4 ++++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/cmd/podman/common/create.go b/cmd/podman/common/create.go index bdf762ed7..e5ee76390 100644 --- a/cmd/podman/common/create.go +++ b/cmd/podman/common/create.go @@ -394,8 +394,9 @@ func GetCreateFlags(cf *ContainerCLIOpts) *pflag.FlagSet { "security-opt", containerConfig.SecurityOptions(), "Security Options", ) + shmSize := "" createFlags.StringVar( - &cf.ShmSize, + &shmSize, "shm-size", containerConfig.ShmSize(), "Size of /dev/shm "+sizeWithUnitFormat, ) diff --git a/cmd/podman/common/specgen.go b/cmd/podman/common/specgen.go index 10ae0bb2d..994c5367e 100644 --- a/cmd/podman/common/specgen.go +++ b/cmd/podman/common/specgen.go @@ -403,11 +403,13 @@ func FillOutSpecGen(s *specgen.SpecGenerator, c *ContainerCLIOpts, args []string } // SHM Size - shmSize, err := units.FromHumanSize(c.ShmSize) - if err != nil { - return errors.Wrapf(err, "unable to translate --shm-size") + if c.ShmSize != "" { + shmSize, err := units.FromHumanSize(c.ShmSize) + if err != nil { + return errors.Wrapf(err, "unable to translate --shm-size") + } + s.ShmSize = &shmSize } - s.ShmSize = &shmSize s.HostAdd = c.Net.AddHosts s.UseImageResolvConf = c.Net.UseImageResolvConf s.DNSServers = c.Net.DNSServers diff --git a/cmd/podman/containers/create.go b/cmd/podman/containers/create.go index 8c0e40122..f8a7c07ef 100644 --- a/cmd/podman/containers/create.go +++ b/cmd/podman/containers/create.go @@ -131,6 +131,10 @@ func createInit(c *cobra.Command) error { logrus.Warn("setting security options with --privileged has no effect") } + if c.Flag("shm-size").Changed { + cliVals.ShmSize = c.Flag("shm-size").Value.String() + } + if (c.Flag("dns").Changed || c.Flag("dns-opt").Changed || c.Flag("dns-search").Changed) && (cliVals.Net.Network.NSMode == specgen.NoNetwork || cliVals.Net.Network.IsContainer()) { return errors.Errorf("conflicting options: dns and the network mode.") } -- cgit v1.2.3-54-g00ecf