add renew_anon_volumes parameter to docker compose up (#977)

* add `renew_anon_volumes` parameter to `docker compose up`

* Apply suggestions from code review

Apply suggested changes to Documentation

Co-authored-by: Felix Fontein <felix@fontein.de>

* Fix sanity check error

apply suggestion from code review

Co-authored-by: Felix Fontein <felix@fontein.de>

* add changelog fragment for PR #977

* apply suggested changes to changelog fragment

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Christoph Sieber <Christoph.Sieber@telekom.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
Christoph 2024-10-19 14:21:13 +02:00 committed by GitHub
parent 309a30e9be
commit be5564d4de
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 0 deletions

View File

@ -0,0 +1,3 @@
---
minor_changes:
- docker_compose_v2 - add ``renew_anon_volumes`` parameter for ``docker compose up`` (https://github.com/ansible-collections/community.docker/pull/977).

View File

@ -93,6 +93,13 @@ options:
- always
- never
- auto
renew_anon_volumes:
description:
- Whether to recreate instead of reuse anonymous volumes from previous containers.
- V(true) is equivalent to the C(--renew-anon-volumes) option of C(docker compose up).
type: bool
default: false
version_added: 4.0.0
remove_images:
description:
- Use with O(state=absent) to remove all images or only local images.
@ -436,6 +443,7 @@ class ServicesManager(BaseComposeManager):
self.remove_images = parameters['remove_images']
self.remove_volumes = parameters['remove_volumes']
self.remove_orphans = parameters['remove_orphans']
self.renew_anon_volumes = parameters['renew_anon_volumes']
self.timeout = parameters['timeout']
self.services = parameters['services'] or []
self.scale = parameters['scale'] or {}
@ -478,6 +486,8 @@ class ServicesManager(BaseComposeManager):
args.append('--force-recreate')
if self.recreate == 'never':
args.append('--no-recreate')
if self.renew_anon_volumes:
args.append('--renew-anon-volumes')
if not self.dependencies:
args.append('--no-deps')
if self.timeout is not None:
@ -620,6 +630,7 @@ def main():
pull=dict(type='str', choices=['always', 'missing', 'never', 'policy'], default='policy'),
build=dict(type='str', choices=['always', 'never', 'policy'], default='policy'),
recreate=dict(type='str', default='auto', choices=['always', 'never', 'auto']),
renew_anon_volumes=dict(type='bool', default=False),
remove_images=dict(type='str', choices=['all', 'local']),
remove_volumes=dict(type='bool', default=False),
remove_orphans=dict(type='bool', default=False),