> Markdown version of [/videos/669-all-things-docker-compose](https://www.wearedevelopers.com/videos/669-all-things-docker-compose). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # All things Docker Compose! Tired of "works on my machine" excuses? Discover how Docker Compose replaces tangled local dependencies with isolated, hot-reloaded development environments. - **Speakers:** [Michael Irwin](https://www.wearedevelopers.com/@michael-irwin) - **Event:** World Congress 2023 - **Published:** September 21, 2023 - **Duration:** 28:30 - **URL:** https://www.wearedevelopers.com/videos/669-all-things-docker-compose ## Summary The traditional developer onboarding experience is notoriously painful, often burdened by vague READMEs, conflicting local software versions, and tangled application dependencies. To "increase the time that developers spend on innovation and decrease the time they spent on everything else," organizations are shifting toward fully containerized development environments. Treating infrastructure components—like databases, message queues, and API backends—as isolated, plug-and-play "Lego bricks" standardizes the setup process. By adopting a declarative framework, teams can reduce the friction of day-one local setups strictly to a standardized `git clone` and `docker compose up` workflow, drastically accelerating time-to-first-commit. Migrating traditional manual setups to a Docker Compose architecture simplifies complex web stacks without necessitating code changes. By defining services in a single YAML file, developers gain immediate access to built-in volume mapping for data persistence, isolated environment variables, and seamless service-to-service DNS resolution. For example, adding a troubleshooting tool like phpMyAdmin to a MySQL backend requires only a few lines of configuration using the `depends_on` parameter, completely bypassing the headaches of manual Apache or PHP dependency installations on the host machine. Building an efficient, hot-reloaded development environment requires balancing container isolation with file system performance. Traditional volume bind-mounts can introduce performance degradation when sharing massive directories like `node_modules` between host and container. To resolve this, new features like Docker Compose Watch introduce granular execution triggers: automatically syncing specific code changes for real-time Webpack hot reloading, or completely triggering automated image rebuilds when lock-files are modified. By removing "works on my machine" ambiguities, engineering teams can eliminate local development friction and enable new hires to successfully ship updates within an hour of cloning the repository. **Keywords:** docker compose, containerized development environments, developer onboarding workflows, declarative infrastructure, zero-config dns networking, docker compose watch, container volume mapping, hot reloading implementation, bind mount performance, service dependency management, multi-stage container builds, local database containerization, outdated readme mitigation, time-to-first-commit, x-develop extensions ## Chapters 1. **Identifying friction in developer onboarding and environment setups** (00:04) — Manual setups create difficulties for developers trying to run complex environments from outdated documentation. 1. **Running popular software images with Docker Desktop** (01:58) — Developers can use the graphical interface to instantly run and test containerized tools without manual installation. 1. **Introducing Docker Compose for local application components** (03:49) — Combining application components with tools like Compose simplifies sharing environments using a single command. 1. **Analyzing a sample multi-tier web application architecture** (04:51) — Reviewing an incomplete setup guide for a basic application stack reveals opportunities for containerization. 1. **Running a database dependency as a local container** (06:32) — Developers can use the command line interface to host a persistent local database without system installations. 1. **Translating terminal commands into a Docker Compose configuration** (08:46) — Moving command line flags into a declarative yaml configuration file creates reproducible database setups. 1. **Adding debugging tools and utilizing internal Compose networking** (14:20) — Adding a database administration interface demonstrates automatic container networking and dependency ordering. 1. **Containerizing application source code with live hot reloading** (17:45) — Using volume bind mounts to share host system files with containers enables instant code compilation updates. 1. **Improving file synchronization performance using experimental Compose Watch** (22:47) — Built-in file watching features automatically sync code changes or rebuild images without relying on slow mounts. 1. **Achieving seamless project onboarding using containerized development workflows** (27:41) — A completed Compose configuration enables quick contributions to projects with zero local configuration. ## Related Moments - [Simplifying container management using local Docker compose configurations](https://www.wearedevelopers.com/videos/166-local-development-techniques-with-kubernetes) (from "Local Development Techniques with Kubernetes") - [Answering audience questions on container functionality and local workflows](https://www.wearedevelopers.com/videos/166-local-development-techniques-with-kubernetes) (from "Local Development Techniques with Kubernetes") - [Overview of Docker Compose ecosystem and documentation tools](https://www.wearedevelopers.com/videos/1978-docker-compose-rediscovered) (from "Docker Compose: Rediscovered") - [Containerizing the completed Rust application utilizing Docker Compose](https://www.wearedevelopers.com/videos/984-rust-and-docker-let-s-build-an-ai-powered-app) (from "Rust and Docker: Let's build an AI-powered app!") - [Adopting AI tools for developer container workflows](https://www.wearedevelopers.com/videos/100183-from-build-to-breach-hacking-kubernetes-through-the-supply-chain) (from "From Build to Breach: Hacking Kubernetes Through the Supply Chain") - [Addressing local development challenges with Podman Desktop](https://www.wearedevelopers.com/videos/1133-containers-and-kubernetes-made-easy-deep-dive-into-podman-desktop-and-new-ai-capabilities) (from "Containers and Kubernetes made easy: Deep dive into Podman Desktop and new AI capabilities") ## Related Articles - [Building AI Solutions with Rust and Docker](https://www.wearedevelopers.com/magazine/494-building-ai-solutions-with-rust-and-docker) - [Dev Digest 172: CODE100 is back, Linux Containers & PHP in Node!](https://www.wearedevelopers.com/magazine/597-dev-digest-172-code100-is-back-linux-containers-php-in-node) - [Dev Digest 132 - Binging WADFlix?](https://www.wearedevelopers.com/magazine/473-dev-digest-132-binging-wadflix) - [Dev Digest 103 - Superb Owl Trafficking](https://www.wearedevelopers.com/magazine/388-dev-digest-103-superb-owl-trafficking) ## Related Jobs - [Senior Engineer, Infrastructure Platform](https://www.wearedevelopers.com/jobs/ext/328836-senior-engineer-infrastructure-platform) at **Intercom, Inc.** - [Devops Engineer](https://www.wearedevelopers.com/jobs/ext/1940926-devops-engineer) at **Bitpanda** - [Platform Engineer (DevOps)](https://www.wearedevelopers.com/jobs/48264-platform-engineer-devops) at **WDW Consulting GmbH** - [IT System Administrator](https://www.wearedevelopers.com/jobs/48290-it-system-administrator) at **Sensory-Minds GmbH** - [Senior Forward Deployed Engineer](https://www.wearedevelopers.com/jobs/ext/1915768-senior-forward-deployed-engineer) at **Intercom** - [Cloud Foundations Team](https://www.wearedevelopers.com/jobs/ext/1483289-cloud-foundations-team) at **GitHub**