From 2cebb82f6855000e6d37fba7deb7dd1987ddb01d Mon Sep 17 00:00:00 2001 From: "Jonathan Hettwer (bauen1)" Date: Thu, 29 Feb 2024 20:16:10 +0100 Subject: [PATCH] Relaxed checking of userns_mode When using docker-compose in combination with rootless podman containers it is desirable to use the keep-id user namespace mapping. By lifting the restriction to 'host' the userns_mode config can now be used with podman to supply the keep-id or more complex configurations. Signed-off-by: Jonathan Hettwer (bauen1) --- docker/types/containers.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docker/types/containers.py b/docker/types/containers.py index a28061383..d6da4c92c 100644 --- a/docker/types/containers.py +++ b/docker/types/containers.py @@ -544,8 +544,13 @@ def __init__(self, version, binds=None, port_bindings=None, if version_lt(version, '1.23'): raise host_config_version_error('userns_mode', '1.23') - if userns_mode != "host": - raise host_config_value_error("userns_mode", userns_mode) + # Do not check that userns_mode has a specific value, i.e. 'host' + # since more complex values might be supported by the daemon exposing + # the docker api, e.g. podman also supports 'keep-id' + + if not isinstance(userns_mode, str): + raise host_config_type_error('userns_mode', userns_mode, 'string') + self['UsernsMode'] = userns_mode if uts_mode: