Inception
Docker · docker compose
A multi-container infrastructure (NGINX, WordPress, MariaDB) built from hand-written Dockerfiles.
View on GitHubA small multi-container infrastructure built from scratch with Docker and docker compose. It runs a WordPress site behind NGINX with TLS, backed by a MariaDB database, each in its own container built from a hand-written Dockerfile with no prebuilt application images.
Architecture
Three services on a private Docker network:
- nginx is the only entrypoint, exposed on port 443 with a self-signed TLS certificate generated at build time, proxying PHP requests to WordPress.
- wordpress runs on PHP-FPM, reading its database credentials and authentication salts from the environment.
- mariadb stores the WordPress data, initialised by an entrypoint script on first start.
WordPress files and the database live on named volumes so data survives a
restart. The containers are built from debian:12 images.