mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-23 13:20:23 -07:00
docker: permit empty or false pid
The `docker` Python module only accepts `None` or `'host'` as arguments. This makes it difficult to conditionally set the `pid` attribute using standard Ansible syntax. This change converts any value that evaluates as boolean `False` to `None`, which includes empty strings: pid: As well as an explicit `false`: pid: false This permits the following to work as intended: - hosts: localhost tasks: - name: starting container docker: docker_api_version: 1.18 image: larsks/mini-httpd name: web pid: "{{ container_pid|default('') }}" If `container_pid` is set to `host` somewhere, this will create a Docker container with `pid=host`; otherwise, this will create a container with normal isolated pid namespace.
This commit is contained in:
parent
9e54efd3fd
commit
6116e4cdab
1 changed files with 4 additions and 0 deletions
|
@ -1282,6 +1282,10 @@ class DockerManager(object):
|
||||||
if params['restart_policy']['Name'] == 'on-failure':
|
if params['restart_policy']['Name'] == 'on-failure':
|
||||||
params['restart_policy']['MaximumRetryCount'] = optionals['restart_policy_retry']
|
params['restart_policy']['MaximumRetryCount'] = optionals['restart_policy_retry']
|
||||||
|
|
||||||
|
# docker_py only accepts 'host' or None
|
||||||
|
if 'pid' in optionals and not optionals['pid']:
|
||||||
|
optionals['pid'] = None
|
||||||
|
|
||||||
if optionals['pid'] is not None:
|
if optionals['pid'] is not None:
|
||||||
self.ensure_capability('pid')
|
self.ensure_capability('pid')
|
||||||
params['pid_mode'] = optionals['pid']
|
params['pid_mode'] = optionals['pid']
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue