Skip to content

Commit

Permalink
Only pass chdir on when it is provided, and prevent this option from …
Browse files Browse the repository at this point in the history
…being used for Docker SDK for Python < 3.0.0.
  • Loading branch information
felixfontein committed Nov 22, 2021
1 parent abd057f commit c1bc830
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
2 changes: 2 additions & 0 deletions changelogs/fragments/243-docker_container_exec-chdir.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
bugfixes:
- "docker_container_exec - ``chdir`` is only supported since Docker SDK for Python 3.0.0. Make sure that this option can only use when 3.0.0 or later is installed, and prevent passing this parameter on when ``chdir`` is not provided to this module (https://github.com/ansible-collections/community.docker/pull/243, https://github.com/ansible-collections/community.docker/issues/242)."
10 changes: 9 additions & 1 deletion plugins/modules/docker_container_exec.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,13 @@ def main():
tty=dict(type='bool', default=False),
)

option_minimal_versions = dict(
chdir=dict(docker_py_version='3.0.0'),
)

client = AnsibleDockerClient(
argument_spec=argument_spec,
option_minimal_versions=option_minimal_versions,
min_docker_api_version='1.20',
mutually_exclusive=[('argv', 'command')],
required_one_of=[('argv', 'command')],
Expand All @@ -190,14 +195,17 @@ def main():
selectors = find_selectors(client.module)

try:
kwargs = {}
if chdir is not None:
kwargs['workdir'] = chdir
exec_data = client.exec_create(
container,
argv,
stdout=True,
stderr=True,
stdin=bool(stdin),
user=user or '',
workdir=chdir,
**kwargs
)
exec_id = exec_data['Id']

Expand Down

0 comments on commit c1bc830

Please sign in to comment.