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):