summaryrefslogtreecommitdiff
path: root/pkg/systemd/generate/containers.go
diff options
context:
space:
mode:
authorValentin Rothberg <rothberg@redhat.com>2021-05-31 11:31:27 +0200
committerValentin Rothberg <rothberg@redhat.com>2021-05-31 11:31:27 +0200
commit53072184192e9952daa3a84bc6f55c15e9ea352e (patch)
tree9d3856b4f79cb6e031f212f8b7595c7bfddd465b /pkg/systemd/generate/containers.go
parent59236762eca31a20d886837698db58e259a21de5 (diff)
downloadpodman-53072184192e9952daa3a84bc6f55c15e9ea352e.tar.gz
podman-53072184192e9952daa3a84bc6f55c15e9ea352e.tar.bz2
podman-53072184192e9952daa3a84bc6f55c15e9ea352e.zip
generate systemd: make mounts portable
Commit 748826fc88fc fixed a bug where slow mounting of the runroot was causing issues when the units are started at boot. The fix was to add the container's runroot to the required mounts; the graph root has been added as well. Hard-coding the run- and graphroot to the required mounts, however, breaks the portability of units generated with --now. Those units are intended to be running on any machine as, theoreticaly, any user. Make the mounts portable by using the `%t` macro for the run root. Since the graphroot's location varies across root and ordinary users, drop it from the list of required mounts. The graphroot was not causing issues. Fixes: #10493 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
Diffstat (limited to 'pkg/systemd/generate/containers.go')
-rw-r--r--pkg/systemd/generate/containers.go17
1 files changed, 8 insertions, 9 deletions
diff --git a/pkg/systemd/generate/containers.go b/pkg/systemd/generate/containers.go
index eb1fb67ff..72f321347 100644
--- a/pkg/systemd/generate/containers.go
+++ b/pkg/systemd/generate/containers.go
@@ -152,14 +152,14 @@ func generateContainerInfo(ctr *libpod.Container, options entities.GenerateSyste
return nil, errors.Errorf("could not determine storage store for container")
}
- graphRoot := store.GraphRoot()
- if graphRoot == "" {
- return nil, errors.Errorf("could not lookup container's graphroot: got empty string")
- }
-
- runRoot := store.RunRoot()
- if runRoot == "" {
- return nil, errors.Errorf("could not lookup container's runroot: got empty string")
+ var runRoot string
+ if options.New {
+ runRoot = "%t/containers"
+ } else {
+ runRoot = store.RunRoot()
+ if runRoot == "" {
+ return nil, errors.Errorf("could not lookup container's runroot: got empty string")
+ }
}
envs := config.Spec.Process.Env
@@ -172,7 +172,6 @@ func generateContainerInfo(ctr *libpod.Container, options entities.GenerateSyste
StopTimeout: timeout,
GenerateTimestamp: true,
CreateCommand: createCommand,
- GraphRoot: graphRoot,
RunRoot: runRoot,
containerEnv: envs,
}