Skip to content

Docker Compose dev environment generator #44

@mathieusouflis

Description

@mathieusouflis

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions