summaryrefslogtreecommitdiff
path: root/libpod/container_internal.go
diff options
context:
space:
mode:
authorPaul Holzinger <pholzing@redhat.com>2021-09-13 15:52:49 +0200
committerPaul Holzinger <pholzing@redhat.com>2021-09-13 22:52:39 +0200
commit6221f269a8936876034a342010b89bc71f8bbe95 (patch)
treeeef8d9717501dfb126a72baa19f893d8113b4aec /libpod/container_internal.go
parent32424d9a9be09be3887fec903d960c87f5aedf28 (diff)
downloadpodman-6221f269a8936876034a342010b89bc71f8bbe95.tar.gz
podman-6221f269a8936876034a342010b89bc71f8bbe95.tar.bz2
podman-6221f269a8936876034a342010b89bc71f8bbe95.zip
fix restart always with rootlessport
When a container is automatically restarted due its restart policy and the container uses rootless cni networking with ports forwarded we have to start a new rootlessport process since it exits with conmon. Signed-off-by: Paul Holzinger <pholzing@redhat.com>
Diffstat (limited to 'libpod/container_internal.go')
-rw-r--r--libpod/container_internal.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/libpod/container_internal.go b/libpod/container_internal.go
index 4d1a25541..18b80475b 100644
--- a/libpod/container_internal.go
+++ b/libpod/container_internal.go
@@ -293,6 +293,15 @@ func (c *Container) handleRestartPolicy(ctx context.Context) (_ bool, retErr err
}
}
+ // setup rootlesskit port forwarder again since it dies when conmon exits
+ // we use rootlesskit port forwarder only as rootless and when bridge network is used
+ if rootless.IsRootless() && c.config.NetMode.IsBridge() && len(c.config.PortMappings) > 0 {
+ err := c.runtime.setupRootlessPortMappingViaRLK(c, c.state.NetNS.Path())
+ if err != nil {
+ return false, err
+ }
+ }
+
if c.state.State == define.ContainerStateStopped {
// Reinitialize the container if we need to
if err := c.reinit(ctx, true); err != nil {