Files
computer-playbook/compose
kevinveenbirkenbach 92bebe5e11 fix(dns): invoke cli.meta.domains as a module
Path-style invocation in scripts/system/network/dns/common.sh failed
with `ImportError: attempted relative import with no known parent
package` because cli/meta/domains/__main__.py uses
`from . import PROJECT_ROOT`. The DNS host generator silently fell
back to a static 3-host list on every bootstrap run (visible in the
test-development CI logs).

Switch the caller to `PYTHONPATH=<repo> python3 -m cli.meta.domains`
so the package context resolves. Keeps the PROJECT_ROOT SPOT
(tests/lint/filesystem/python/test_project_root_import.py) intact —
no local redefinition.

Also: one-line YAML rewrap in compose/cache.override.yml (formatter).
2026-05-21 22:58:28 +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.