From e5c3e01838e663de3cbc61f2f33090abd92faa83 Mon Sep 17 00:00:00 2001 From: Felix Fontein Date: Sat, 7 Jun 2025 21:34:49 +0200 Subject: [PATCH] Work around ubg in docker compose images --format json. --- changelogs/fragments/1083-docker_compose_v2-images.yml | 3 +++ plugins/module_utils/compose_v2.py | 5 +++++ 2 files changed, 8 insertions(+) create mode 100644 changelogs/fragments/1083-docker_compose_v2-images.yml diff --git a/changelogs/fragments/1083-docker_compose_v2-images.yml b/changelogs/fragments/1083-docker_compose_v2-images.yml new file mode 100644 index 00000000..d4e6a6d9 --- /dev/null +++ b/changelogs/fragments/1083-docker_compose_v2-images.yml @@ -0,0 +1,3 @@ +bugfixes: + - "docker_compose_v2 - handle a (potentially unintentional) breaking change in Docker Compose 2.37.0 + (https://github.com/ansible-collections/community.docker/issues/1082, https://github.com/ansible-collections/community.docker/pull/1083)." diff --git a/plugins/module_utils/compose_v2.py b/plugins/module_utils/compose_v2.py index eeece9d1..33975fd1 100644 --- a/plugins/module_utils/compose_v2.py +++ b/plugins/module_utils/compose_v2.py @@ -818,6 +818,11 @@ class BaseComposeManager(DockerBaseClass): rc, images, stderr = self.client.call_cli_json(*args, **kwargs) if self.use_json_events and rc != 0: self._handle_failed_cli_call(args, rc, images, stderr) + if isinstance(images, dict): + # Handle breaking change in Docker Compose 2.37.0; see + # https://github.com/ansible-collections/community.docker/issues/1082 + # and https://github.com/docker/compose/issues/12916 for details + images = list(images.values()) return images def parse_events(self, stderr, dry_run=False, nonzero_rc=False):