Skip to content

chore(#166): deduplicate compose FDB services and use Compose v2 - #187

Merged
s2x merged 1 commit into
masterfrom
chore/issue-166-maintainability-deduplicate-compose-clus
Nov 6, 2026
Merged

s2x merged 1 commit into
masterfrom
chore/issue-166-maintainability-deduplicate-compose-clus

Conversation

@s2x

@s2x s2x commented Nov 6, 2026

Copy link
Copy Markdown
Member

What changed

The five FDB services repeated the image, coordinator string, environment
entries, entrypoint, restart policy, healthcheck and common volume mounts, and
the CI e2e job still used the legacy docker-compose binary plus a duplicate
tenant-mode step.

  • docker-compose.yml: shared x-fdb-* anchors for the image, coordinator
    string (FDB_CLUSTER_FILE_CONTENTS), environment map, entrypoint, restart
    policy, healthcheck and the two common volume items. All five FDB services
    use them; the coordinator string now appears once.
  • fdb-config and php entrypoints write the cluster file from
    FDB_CLUSTER_FILE_CONTENTS instead of a hardcoded string.
  • .github/workflows/ci.yml e2e: legacy install removed, every call uses
    docker compose, and the duplicate tenant-mode step is replaced by a bounded
    wait for the fdb-config sentinel healthcheck.
  • CHANGELOG.md records the change under [Unreleased]/Changed.

Closes #166

How it was tested

  • docker compose config --format json on master vs HEAD: identical
    effective FDB_PORT, FDB_BG_URL, cluster contents, restart policy,
    healthcheck and volume mounts for all five FDB services; only the intended
    entrypoint/env changes differ.
  • grep -c 'docker:docker@' docker-compose.yml = 1; fdb-config and php
    write the exact string plus one newline.
  • Fresh docker compose up -d of the six services: available after 7 s,
    fdb-config healthy after 7 s, tenant_mode: optional_experimental;
    docker compose ps -q, exec and down -v work.
  • make test: 926 tests, 2500 assertions, 6 skipped.
    make test-integration: 309 tests, 1233 assertions, 6 skipped.
  • docker compose config -q, bin/lint.sh, actionlint, git diff --check
    pass.

Checklist

  • Tests added or updated, and all checks pass
  • CHANGELOG.md updated under [Unreleased]
  • Documentation updated
  • Everything is written in English
  • The PR title is a Conventional Commit (chore: ...)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Maintainability] Deduplicate compose cluster setup and use the Docker Compose plugin in e2e

1 participant