← ClaudeAtlas

docker-architectlisted

Extends a project's docker-compose.yml and Dockerfile after project-bootstrap's base generation — adds the database or messaging service a modeled use case needs, keeps the compose-side image tag consistent with the one test-architect pins in TestcontainersConfiguration.java, and syncs with 20-persistencia.md / 40-testes.md. Also owns the observability backend behind the OTLP collector: Jaeger, or Grafana + Tempo + Prometheus. Use when the request involves adding a service to docker-compose, containerizing a new dependency, configuring Testcontainers at the compose level, "docker-compose is missing the database", or wanting a dashboard, a trace UI, or somewhere to actually look at spans and metrics instead of the collector's `debug` stdout — also fires when persistence-architect or test-architect detect a service their spec needs isn't in docker-compose.yml yet.
ice-lfernandes/claude-spring-architect · ★ 3 · DevOps & Infrastructure · score 79
Install: claude install-skill ice-lfernandes/claude-spring-architect
## Current compose state !`R="${CLAUDE_PROJECT_DIR:-.}"; if test ! -d "$R"; then echo "(could not look: project root '$R' is not a readable directory — this is not an answer about docker-compose.yml)"; elif test -f "$R/docker-compose.yml"; then grep -E "^\s{2}\S+:$" "$R/docker-compose.yml" || echo "(docker-compose.yml exists but declares no service at two-space indent)"; else echo "(no docker-compose.yml at project root — run project-bootstrap first)"; fi` ## Target $ARGUMENTS --- # Docker Architect Keeps `docker-compose.yml` and `Dockerfile` in sync with what the project actually needs, **after** they're born. `project-bootstrap` writes the base pair — one `app` service, nothing else — at project creation. Every service added afterward (Postgres, MySQL, a broker) goes through this skill, so there's one owner instead of `persistence-architect` and `test-architect` each editing the same YAML their own way. **Entry rule: without `docker-compose.yml` at the project root, there's nothing to extend.** If it's missing, stop and say to run `project-bootstrap` — this skill never generates the base pair, only grows it. The `## Current compose state` block above answers one of three things, and only the second one arms that rule: | Output | Meaning | What to do | |---|---|---| | A list of service names | The file exists | Proceed | | `(no docker-compose.yml at project root …)` | The project root was readable and the file is not there | Entry rule applies: stop | | `(could not