docker-compose.yml Generator
Generate a compose.yaml for local development with MySQL, PostgreSQL, Redis, Mailpit, Meilisearch, MinIO, RabbitMQ or Adminer, with healthchecks and volumes.
Free · No sign-up · Your inputs stay in your browser
Input
Generate a docker-compose.yml for local development
Output
compose.yaml
1,063 characters
Every port is published on 127.0.0.1 only: Docker writes its own iptables rules, so a plain 3306:3306 is reachable from the internet on a server even with ufw denying it. depends_on with condition: service_healthy waits for the healthcheck, not just for the container to start. Pin the latest tags before sharing the file.
Runs in this browser. Nothing you paste is sent to a server.
About this tool
Method, assumptions, practical next steps, and limits.
Publish on localhost
Docker inserts its own iptables rules for published ports, ahead of ufw's, so 3306:3306 on a server is reachable from the internet even with the firewall denying it. Binding to 127.0.0.1:3306:3306 keeps a database private. The packet filtering documentation explains the interaction.
Healthchecks and start order
depends_on alone only waits for a container to start, and a database accepts connections seconds later. With a healthcheck and condition: service_healthy, the app waits until the database answers, which removes the retry loop most entrypoint scripts carry.