Columbia Games · WordPress / 14 May 2026
Putting WordPress in Docker was not mainly about writing a Compose file
The legacy WordPress development environment moved into Docker. The real work was turning years of implicit server assumptions into explicit, reproducible configuration.

Situation
The production site had been running for years, but the development environment could not be reproduced from a single command. WordPress, MariaDB, Apache settings, PHP limits and domain handling were each known separately. Reassembling the same behaviour manually on a new machine meant relying on too many hidden decisions.
Approach
I built a Docker Compose foundation with MariaDB and a custom WordPress image. I did not try to containerize production immediately; the first goal was to make development deterministic. Filesystem mounts, database connectivity, PHP configuration and required Apache modules were defined in separate layers so the environment no longer depended on the state of the host machine.
Outcome
The project could now be started with the same Compose stack across different developer machines. Later WordPress and plugin upgrades gained a controlled lab where changes could be tested before production, significantly reducing the usual 'works on my machine' uncertainty.