fix(web-svc-collabora): strip the leading slash from the healthcheck discovery path

The shared curl healthcheck template prepends a / before container_healthcheck, and COLLABORA_DISCOVERY_PATH already carries a leading slash, so the rendered probe was http://127.0.0.1:9980//hosting/discovery (double slash). COOLWSD (POCO HTTP) exact-matches the /hosting/discovery route and does not normalize //, so the probe returned non-2xx, curl -f failed its retries, swarm marked the task unhealthy and SIGTERM+rescheduled it on the healthcheck cadence (~3 min), so 'swarm | wait for collabora task to converge' never passed (failing collabora and the apps that preload it: bigbluebutton, nextcloud). Apply regex_replace('^/+', '') at the healthcheck assignment to render the single-slash URL. Fixed at the consumption site rather than the var because proxy.conf.j2 uses COLLABORA_DISCOVERY_PATH as the nginx 'location = /hosting/discovery', which requires the leading slash.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
kevinveenbirkenbachandClaude Opus 4.8 committed 2026-06-26 03:10:07 +02:00
1 parent ab8b8e5184
commit 83636408c9
1 file changed
+1 -1
@@ -14,7 +14,7 @@
- SETGID
- FOWNER
{{ lookup('container_ports', ['collabora', 'http', DOCKER_BIND_HOST]) | indent(4) }}
{% set container_healthcheck = COLLABORA_DISCOVERY_PATH %}
{% set container_healthcheck = COLLABORA_DISCOVERY_PATH | regex_replace('^/+', '') %}
{% include 'roles/sys-svc-container/templates/healthcheck/curl.yml.j2' %}
{{ lookup('container_networks') | indent(4) }}