Files
claude-skills-reference/engineering/git-worktree-manager/references/docker-compose-patterns.md
Alireza Rezvani 3d9d1d2d92 Dev (#249)
* docs: restructure README.md — 2,539 → 209 lines (#247)

- Cut from 2,539 lines / 73 sections to 209 lines / 18 sections
- Consolidated 4 install methods into one unified section
- Moved all skill details to domain-level READMEs (linked from table)
- Front-loaded value prop and keywords for SEO
- Added POWERFUL tier highlight section
- Added skill-security-auditor showcase section
- Removed stale Q4 2025 roadmap, outdated ROI claims, duplicate content
- Fixed all internal links
- Clean heading hierarchy (H2 for main sections only)

Closes #233

Co-authored-by: Leo <leo@openclaw.ai>

* fix: enhance 5 skills with scripts, references, and Anthropic best practices (#248)

* fix(skill): enhance git-worktree-manager with scripts, references, and Anthropic best practices

* fix(skill): enhance mcp-server-builder with scripts, references, and Anthropic best practices

* fix(skill): enhance changelog-generator with scripts, references, and Anthropic best practices

* fix(skill): enhance ci-cd-pipeline-builder with scripts, references, and Anthropic best practices

* fix(skill): enhance prompt-engineer-toolkit with scripts, references, and Anthropic best practices

* docs: update README, CHANGELOG, and plugin metadata

* fix: correct marketing plugin count, expand thin references

---------

Co-authored-by: Leo <leo@openclaw.ai>

---------

Co-authored-by: Leo <leo@openclaw.ai>
2026-03-04 08:38:06 +01:00

1.1 KiB

Docker Compose Patterns For Worktrees

Pattern 1: Override File Per Worktree

Base compose file remains shared; each worktree has a local override.

docker-compose.worktree.yml:

services:
  app:
    ports:
      - "3010:3000"
  db:
    ports:
      - "5442:5432"
  redis:
    ports:
      - "6389:6379"

Run:

docker compose -f docker-compose.yml -f docker-compose.worktree.yml up -d

Pattern 2: .env Driven Ports

Use compose variable substitution and write worktree-specific values into .env.local.

docker-compose.yml excerpt:

services:
  app:
    ports: ["${APP_PORT:-3000}:3000"]
  db:
    ports: ["${DB_PORT:-5432}:5432"]

Worktree .env.local:

APP_PORT=3010
DB_PORT=5442
REDIS_PORT=6389

Pattern 3: Project Name Isolation

Use unique compose project name so container, network, and volume names do not collide.

docker compose -p myapp_wt_auth up -d

Common Mistakes

  • Reusing default 5432 from multiple worktrees simultaneously
  • Sharing one database volume across incompatible migration branches
  • Forgetting to scope compose project name per worktree