Files
computer-playbook/compose
kevinveenbirkenbachandClaude Opus 4.8 81fcfa9aef fix(swarm-test): answer the app-domain wildcard with the manager's routable IP
The per-node dnsmasq answered the app-domain wildcard with 127.0.0.1 on the manager; node dockerd hands that resolver to every task container, where loopback is the task's own netns, so any healthcheck reaching for a published service port (friendica's msmtp send to mail.<domain>:465 with email enabled) got connection-refused although the port was ingress-published and mailu healthy - manager-placed replicas could never become healthy and the stack sat at 0/3 until the converge wait expired. Answer with the manager's lab IP for every consumer; host-side processes reach published ports through it identically.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 01:38:05 +02:00
..
…

Compose Configuration 🧩

This directory holds the static configuration assets consumed by the top-level compose.yml of the local development and CI testing stack.

Scope 📋

  • The directory MUST contain only files that are bind-mounted into a service defined in compose.yml.
  • The directory MUST NOT host application configuration that belongs to an Ansible role. Per-role compose payloads live under roles/<role>/templates/.
  • The directory MUST NOT host workflow scripts, test fixtures, or build helpers. Those belong under scripts/ or tests/.

Layout 🗂️

Each compose service that needs static configuration owns a sub-directory whose name matches the service. New service-specific config MUST go into the matching sub-directory rather than at the compose/ root.

For the rules that govern compose.yml itself (env-variable contract, profile gating, resource caps), see compose.yml.md.