--- - name: Update Docker containers hosts: docker_hosts become: true vars: update_stack: all tasks: - name: Get list of compose directories ansible.builtin.find: paths: "{{ docker_compose_base }}" file_type: directory recurse: false register: compose_dirs tags: [update] - name: Pull latest images for each stack community.docker.docker_compose_v2_pull: project_src: "{{ item.path }}" loop: "{{ compose_dirs.files }}" loop_control: label: "{{ item.path | basename }}" when: update_stack == 'all' or (item.path | basename) == update_stack tags: [update] - name: Recreate containers with new images community.docker.docker_compose_v2: project_src: "{{ item.path }}" state: present recreate: auto loop: "{{ compose_dirs.files }}" loop_control: label: "{{ item.path | basename }}" when: update_stack == 'all' or (item.path | basename) == update_stack tags: [update] - name: Prune unused Docker images community.docker.docker_prune: images: true images_filters: dangling: false tags: [cleanup] - name: Prune unused Docker volumes community.docker.docker_prune: volumes: true tags: [cleanup] when: prune_volumes | default(false) | bool