
Docker
Overview
Docker packages an app with everything it needs to run (code, libraries and settings) into a container. A container runs the same way on any machine.
How I Use Docker
Every app I build runs in Docker containers. On my laptop, the whole app (web app, API, database and background workers) starts with one command using Docker Compose. In production the same containers run behind Nginx, which serves the site over HTTPS and passes each request to the right place.
Tests and deploys run automatically with GitHub Actions. When I push a change, the tests and security checks run first, and the new version only goes live if they pass.
Why Docker
“It works on my machine” stops being a problem: what I test is exactly what runs in production. The setup is written down as code, so a new server or a new developer is quick to get running, and rolling back a bad release is simple.



