--- # https://stackoverflow.com/questions/45237632/ansible-w-docker-show-current-container-state - name: Get container info docker_container_info: name: "{{container_name}}" register: result # We find the volumes - name: Find volumes ansible.builtin.shell: docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /mnt/hdds/backups/:/mnt/hdds/backups/ ghcr.io/chatton/docker-volume-backup:master list-backups --host-path /mnt/hdds/backups/ --volume-name-filter {{container_name}} --newest-only register: out - name: Stop the container # not out.stdout is search("null") occurs when there is no volume in the backups dir when: result.exists and not out.stdout is search("null") docker_container: name: "{{container_name}}" state: stopped - name: Restore Volume ansible.builtin.command: docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/chatton/docker-volume-backup:master restore-volume --volume {{item.volumeName}} --archive {{item.absoluteFilePath}} with_items: "{{ out.stdout }}" # the output will be "null" if there are no backups. We simply skip if this is the case when: not out.stdout is search("null") - name: Start the container # not out.stdout is search("null") occurs when there is no volume in the backups dir when: result.exists and not out.stdout is search("null") docker_container: name: "{{container_name}}" state: started