diff --git a/changelogs/fragments/810-compose-errors.yml b/changelogs/fragments/810-compose-errors.yml new file mode 100644 index 00000000..658b435e --- /dev/null +++ b/changelogs/fragments/810-compose-errors.yml @@ -0,0 +1,4 @@ +bugfixes: + - "docker_compose_v2 - do not fail when non-fatal errors occur. This can happen when pulling an image fails, but then the image can be built + for another service. Docker Compose emits an error in that case, but ``docker compose up`` still completes successfully + (https://github.com/ansible-collections/community.docker/issues/807, https://github.com/ansible-collections/community.docker/pull/810)." diff --git a/plugins/module_utils/compose_v2.py b/plugins/module_utils/compose_v2.py index 2a048ac1..8bc16507 100644 --- a/plugins/module_utils/compose_v2.py +++ b/plugins/module_utils/compose_v2.py @@ -404,6 +404,8 @@ def is_failed(events, rc): def update_failed(result, events, args, stdout, stderr, rc, cli): + if not rc: + return False errors = [] for event in events: if event.status in DOCKER_STATUS_ERROR: @@ -419,8 +421,6 @@ def update_failed(result, events, args, stdout, stderr, rc, cli): status=event.status, msg=event.msg, )) - if not errors and not rc: - return False if not errors: errors.append('Return code {code} is non-zero'.format(code=rc)) result['failed'] = True