Snippets / Compose
WordPress + MySQL
A classic WordPress site backed by MySQL, with persistent volumes.
wordpressmysqlphp
docker-compose.yml
services:
wordpress:
image: wordpress:6-php8.3-apache
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
# Only wp-content needs to persist (themes, plugins, uploads) --
# WordPress core itself comes from the image on every recreate.
- wp-content:/var/www/html/wp-content
depends_on:
- db
db:
image: mysql:8.4
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
# Generates a random root password instead of leaving it blank --
# the app user above never needs root, so nothing else has to know it.
MYSQL_RANDOM_ROOT_PASSWORD: "1"
volumes:
- db-data:/var/lib/mysql
volumes:
wp-content:
db-data:
More compose snippets