libpod: Don't mount /dev/shm in containers on FreeBSD

This mount has never been standard on FreeBSD, preferring to use /tmp or
/var/tmp optionally with tmpfs to ensure data is lost on a reboot.

[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
This commit is contained in:
Doug Rabson
2022-08-27 15:53:45 +01:00
parent 212b11c34c
commit d162285f34
3 changed files with 21 additions and 6 deletions

View File

@ -171,12 +171,17 @@ func (r *Runtime) initContainerVariables(rSpec *spec.Spec, config *ContainerConf
if config == nil { if config == nil {
ctr.config.ID = stringid.GenerateNonCryptoID() ctr.config.ID = stringid.GenerateNonCryptoID()
size, err := units.FromHumanSize(r.config.Containers.ShmSize) size, err := units.FromHumanSize(r.config.Containers.ShmSize)
if err != nil { if useDevShm {
return nil, fmt.Errorf("converting containers.conf ShmSize %s to an int: %w", r.config.Containers.ShmSize, err) if err != nil {
return nil, fmt.Errorf("converting containers.conf ShmSize %s to an int: %w", r.config.Containers.ShmSize, err)
}
ctr.config.ShmSize = size
ctr.config.NoShm = false
ctr.config.NoShmShare = false
} else {
ctr.config.NoShm = true
ctr.config.NoShmShare = true
} }
ctr.config.ShmSize = size
ctr.config.NoShm = false
ctr.config.NoShmShare = false
ctr.config.StopSignal = 15 ctr.config.StopSignal = 15
ctr.config.StopTimeout = r.config.Engine.StopTimeout ctr.config.StopTimeout = r.config.Engine.StopTimeout
@ -528,7 +533,7 @@ func (r *Runtime) setupContainer(ctx context.Context, ctr *Container) (_ *Contai
} }
} }
if !MountExists(ctr.config.Spec.Mounts, "/dev/shm") && ctr.config.ShmDir == "" && !ctr.config.NoShm { if useDevShm && !MountExists(ctr.config.Spec.Mounts, "/dev/shm") && ctr.config.ShmDir == "" && !ctr.config.NoShm {
ctr.config.ShmDir = filepath.Join(ctr.bundlePath(), "shm") ctr.config.ShmDir = filepath.Join(ctr.bundlePath(), "shm")
if err := os.MkdirAll(ctr.config.ShmDir, 0700); err != nil { if err := os.MkdirAll(ctr.config.ShmDir, 0700); err != nil {
if !os.IsExist(err) { if !os.IsExist(err) {

View File

@ -0,0 +1,5 @@
package libpod
const (
useDevShm = false
)

View File

@ -0,0 +1,5 @@
package libpod
const (
useDevShm = true
)