Problem statement
Developers using dot to set up a project with Postgres and Redis still have to write the docker-compose.yml for local development by hand. There is no way to spin up all services with a single command after dot init.
Proposed solution
Implement DockerComposeDevGenerator in generators/common/docker_compose_dev.go.
Name(): "common-docker-compose-dev"
Language(): "*"
Modules(): ["docker-compose-dev"]
Apply() generates a docker-compose.yml that includes all declared modules as services:
postgres → Postgres service on port 5432 with env vars
redis → Redis service on port 6379
- etc.
The app itself is not in the compose file — developers run the app locally.
Also generates docker-compose.override.yml.example for local customization.
When dot add module <service> is run later (v0.3), the compose file is updated to add the new service.
Alternatives considered
Include the app itself in Docker Compose. Rejected — mixing local dev (hot reload) with Docker-managed containers adds complexity and slows iteration.
Area
Core
Additional context
This is dev environment only. Production deployment is handled by the deployment generators.
Language "*" — works alongside any backend language.
Problem statement
Developers using dot to set up a project with Postgres and Redis still have to write the
docker-compose.ymlfor local development by hand. There is no way to spin up all services with a single command afterdot init.Proposed solution
Implement
DockerComposeDevGeneratoringenerators/common/docker_compose_dev.go.Name():"common-docker-compose-dev"Language():"*"Modules():["docker-compose-dev"]Apply()generates adocker-compose.ymlthat includes all declared modules as services:postgres→ Postgres service on port 5432 with env varsredis→ Redis service on port 6379The app itself is not in the compose file — developers run the app locally.
Also generates
docker-compose.override.yml.examplefor local customization.When
dot add module <service>is run later (v0.3), the compose file is updated to add the new service.Alternatives considered
Include the app itself in Docker Compose. Rejected — mixing local dev (hot reload) with Docker-managed containers adds complexity and slows iteration.
Area
Core
Additional context
This is dev environment only. Production deployment is handled by the deployment generators.
Language
"*"— works alongside any backend language.