Projects

Docker Compose in Production. Everyone Said No. It Works. Real Users. Real Load.

Everyone told me Docker Compose isn't "production-ready." That I needed Kubernetes. That Compose is for local development only. So I put Docker Compose in production. For a real application. With real users. And it just... Worked. My first docker-compose.yml was WordPress and MySQL. It took me three days - three days of debugging port conflicts, wondering why the database refused to connect, not understanding the difference between a container and an image. Port 3306 already in use because MySQL was running locally and I didn't even know it. Today, the same setup takes three minutes. But those three days changed how I think about infrastructure forever. The full setup for production: a web service with database, cache, and background workers running on a single VM behind Nginx. Blue-green deployments handled by a simple bash script. Prometheus + Grafana for monitoring. Automated backups. Total cost: $40/month. The Kubernetes equivalent would have run $200-400/month for managed K8s plus nodes. Uptime over 6 months: 99.9%. The lesson from that first compose file still applies today: infrastructure can be defined as code, environments should be reproducible, and services should…