# Add a toggle to optionally clean up orphan containers vars: remove_orphans: false # English: set true if you want to prune orphan containers for this project collabora_commands: - "{{ docker_prefix }} pull -q collabora/code:latest >/dev/null" - "{{ docker_prefix }} compose -p {{ collabora_project }} -f {{ collabora_compose_file }} pull collabora >/dev/null" - >- {{ docker_prefix }} compose -p {{ collabora_project }} -f {{ collabora_compose_file }} up -d --no-deps --force-recreate {{ '--remove-orphans' if remove_orphans else '' }} collabora >/dev/null # --- Health check after restart (new tasks) --- - name: Collabora | Wait for container to report healthy # English comments ansible.builtin.command: argv: - sshpass - -p - "{{ vm_pass }}" - ssh - -o - StrictHostKeyChecking=no - -o - ConnectTimeout=15 - "{{ vm_user }}@{{ vm_ip }}" - bash - -lc - > # English: wait up to 90s for "healthy" set -Eeuo pipefail; for i in {1..30}; do s=$({{ ('sudo ' if use_sudo else '') }}{{ docker_prefix }} inspect -f '{{"{{"}}.State.Health.Status{{"}}"}}' collabora 2>/dev/null || echo "unknown"); echo "collabora health: $s"; [[ "$s" == "healthy" ]] && exit 0; sleep 3; done; exit 2 register: collabora_health changed_when: false failed_when: false - name: Collabora | Show health check output ansible.builtin.debug: msg: | {{ (collabora_health.stdout | default('')).strip() }} {{ (collabora_health.stderr | default('')).strip() }} - name: Collabora | Fail if not healthy ansible.builtin.assert: that: "collabora_health.rc == 0" fail_msg: "Collabora container did not become healthy in time." success_msg: "Collabora is healthy."