Work around Docker 29.0.0 bug. (#1187)

This commit is contained in:
Felix Fontein 2025-11-12 19:21:55 +01:00 committed by GitHub
parent 94d22f758b
commit ec14568b22
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 2 deletions

View File

@ -0,0 +1,2 @@
bugfixes:
- "Docker CLI based modules - work around bug in Docker 29.0.0 that caused a breaking change in ``docker version --format json`` output (https://github.com/ansible-collections/community.docker/issues/1185, https://github.com/ansible-collections/community.docker/pull/1187)."

View File

@ -126,13 +126,16 @@ class AnsibleDockerClientBase:
self._info: dict[str, t.Any] | None = None self._info: dict[str, t.Any] | None = None
if needs_api_version: if needs_api_version:
api_version_string = self._version["Server"].get(
"ApiVersion"
) or self._version["Server"].get("APIVersion")
if not isinstance(self._version.get("Server"), dict) or not isinstance( if not isinstance(self._version.get("Server"), dict) or not isinstance(
self._version["Server"].get("ApiVersion"), str api_version_string, str
): ):
self.fail( self.fail(
"Cannot determine Docker Daemon information. Are you maybe using podman instead of docker?" "Cannot determine Docker Daemon information. Are you maybe using podman instead of docker?"
) )
self.docker_api_version_str = to_text(self._version["Server"]["ApiVersion"]) self.docker_api_version_str = to_text(api_version_string)
self.docker_api_version = LooseVersion(self.docker_api_version_str) self.docker_api_version = LooseVersion(self.docker_api_version_str)
min_docker_api_version = min_docker_api_version or "1.25" min_docker_api_version = min_docker_api_version or "1.25"
if self.docker_api_version < LooseVersion(min_docker_api_version): if self.docker_api_version < LooseVersion(min_docker_api_version):