summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'pkg')
-rw-r--r--pkg/spec/createconfig.go4
-rw-r--r--pkg/spec/spec.go50
2 files changed, 4 insertions, 50 deletions
diff --git a/pkg/spec/createconfig.go b/pkg/spec/createconfig.go
index d34b21189..6ac9d82da 100644
--- a/pkg/spec/createconfig.go
+++ b/pkg/spec/createconfig.go
@@ -319,6 +319,10 @@ func (c *CreateConfig) GetContainerCreateOptions(runtime *libpod.Runtime) ([]lib
if c.Interactive {
options = append(options, libpod.WithStdin())
}
+ if c.Systemd && (strings.HasSuffix(c.Command[0], "init") ||
+ strings.HasSuffix(c.Command[0], "systemd")) {
+ options = append(options, libpod.WithSystemd())
+ }
if c.Name != "" {
logrus.Debugf("appending name %s", c.Name)
options = append(options, libpod.WithName(c.Name))
diff --git a/pkg/spec/spec.go b/pkg/spec/spec.go
index 4c855d659..b1cca2c9e 100644
--- a/pkg/spec/spec.go
+++ b/pkg/spec/spec.go
@@ -5,7 +5,6 @@ import (
"path"
"strings"
- "github.com/containers/libpod/libpod"
"github.com/containers/libpod/pkg/rootless"
"github.com/docker/docker/daemon/caps"
"github.com/docker/docker/pkg/mount"
@@ -261,12 +260,6 @@ func CreateConfigToOCISpec(config *CreateConfig) (*spec.Spec, error) { //nolint
addedResources = true
}
- if config.Systemd && (strings.HasSuffix(config.Command[0], "init") ||
- strings.HasSuffix(config.Command[0], "systemd")) {
- if err := setupSystemd(config, &g); err != nil {
- return nil, errors.Wrap(err, "failed to setup systemd")
- }
- }
for _, i := range config.Tmpfs {
// Default options if nothing passed
options := []string{"rw", "rprivate", "noexec", "nosuid", "nodev", "size=65536k"}
@@ -408,49 +401,6 @@ func blockAccessToKernelFilesystems(config *CreateConfig, g *generate.Generator)
}
}
-// systemd expects to have /run, /run/lock and /tmp on tmpfs
-// It also expects to be able to write to /sys/fs/cgroup/systemd and /var/log/journal
-
-func setupSystemd(config *CreateConfig, g *generate.Generator) error {
- mounts, err := config.GetVolumeMounts([]spec.Mount{})
- if err != nil {
- return err
- }
- options := []string{"rw", "rprivate", "noexec", "nosuid", "nodev"}
- for _, dest := range []string{"/run", "/run/lock"} {
- if libpod.MountExists(mounts, dest) {
- continue
- }
- tmpfsMnt := spec.Mount{
- Destination: dest,
- Type: "tmpfs",
- Source: "tmpfs",
- Options: append(options, "tmpcopyup", "size=65536k"),
- }
- g.AddMount(tmpfsMnt)
- }
- for _, dest := range []string{"/tmp", "/var/log/journal"} {
- if libpod.MountExists(mounts, dest) {
- continue
- }
- tmpfsMnt := spec.Mount{
- Destination: dest,
- Type: "tmpfs",
- Source: "tmpfs",
- Options: append(options, "tmpcopyup"),
- }
- g.AddMount(tmpfsMnt)
- }
- tmpfsMnt := spec.Mount{
- Destination: "/sys/fs/cgroup/systemd",
- Type: "tmpfs",
- Source: "tmpfs",
- Options: append(options, "size=65536k"),
- }
- g.AddMount(tmpfsMnt)
- return nil
-}
-
func addPidNS(config *CreateConfig, g *generate.Generator) error {
pidMode := config.PidMode
if IsNS(string(pidMode)) {