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.

2 min read
Columbia Games · WordPress
WordPressDockerMariaDBreproducibility
Live screenshot of the Columbia Games WordPress site
Columbia Games WordPress — modernizing the development runtime while keeping the production site in place.

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.