feat(infra): docker-compose.federated.yml overlay (FED-M1-02) #471
Reference in New Issue
Block a user
Delete Branch "feat/federation-m1-compose"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
FED-M1-02 —
docker-compose.federated.ymloverlay for the federated tier.Defines two profile-gated services so the federated tier can be brought up locally for development and integration tests, distinct from the dev stack:
postgres-federated—pgvector/pgvector:pg17on host port${PG_FEDERATED_HOST_PORT:-5433}, named volumepg_federated_data, healthcheck identical to base, mounts./infra/pg-initso the vector extension is created automatically.valkey-federated—valkey/valkey:8-alpineon host port${VALKEY_FEDERATED_HOST_PORT:-6380}, named volumevalkey_federated_data, healthcheck identical to base.Both services have
profiles: [federated]so they never start on a plaindocker compose up. Activation:Mutually exclusive with the base dev stack on host ports 5433/6380 — the file's header comment documents this. The base
docker-compose.ymlis untouched.PG version is 17 (not 16 as the original task spec suggested) to match the base compose file. No reason to run a different major version for the same logical service.
Verification
docker compose -f docker-compose.federated.yml --profile federated configexits 0 with both services listed.docker compose -f docker-compose.federated.yml config --services(no profile flag) returns empty — confirms profile gating works.docker-compose.yml(verified viagit diff --name-only HEAD).Refs #460
Test plan
docker compose -f docker-compose.federated.yml --profile federated configexits 0--profile federated)Generated with Claude Code
Adds a profile-gated compose overlay defining `postgres-federated` (pgvector/pgvector:pg17, port 5433) and `valkey-federated` (valkey/valkey:8-alpine, port 6380) with named volumes (`pg_federated_data`, `valkey_federated_data`), healthchecks identical to the base stack, and the existing `infra/pg-init` mount so the vector extension is created automatically on first boot. Both services are gated by `profiles: [federated]` so they never start on a plain `docker compose up`. Usage: docker compose -f docker-compose.federated.yml --profile federated up -d The overlay is mutually exclusive with the base dev stack on host ports 5433/6380 (header comment documents this). Base file untouched. Refs #460 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>