Add Docker development environment

Multistage Dockerfile (WooCommerce download, wp-bootstrap npm build,
Composer deps, WordPress runtime), Compose stack with MariaDB, and
auto-setup entrypoint that installs WordPress and activates the theme
on first boot.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-28 11:59:20 +01:00
parent 404f3a7264
commit 624de0cae6
10 changed files with 270 additions and 0 deletions

45
compose.yaml Normal file
View File

@@ -0,0 +1,45 @@
services:
db:
image: mariadb:11
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-rootpass}
MYSQL_DATABASE: ${MYSQL_DATABASE:-wordpress}
MYSQL_USER: ${MYSQL_USER:-wordpress}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-wordpress}
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 10s
timeout: 5s
retries: 5
wordpress:
build:
context: .
dockerfile: docker/Dockerfile
additional_contexts:
wp-bootstrap: ../wp-bootstrap
target: wp_runtime
ports:
- "${WP_PORT:-8080}:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_NAME: ${MYSQL_DATABASE:-wordpress}
WORDPRESS_DB_USER: ${MYSQL_USER:-wordpress}
WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD:-wordpress}
WP_AUTO_SETUP: ${WP_AUTO_SETUP:-1}
WP_URL: ${WP_URL:-http://localhost:${WP_PORT:-8080}}
WP_TITLE: ${WP_TITLE:-WC Bootstrap Dev}
WP_ADMIN_USER: ${WP_ADMIN_USER:-admin}
WP_ADMIN_PASSWORD: ${WP_ADMIN_PASSWORD:-admin}
WP_ADMIN_EMAIL: ${WP_ADMIN_EMAIL:-admin@example.com}
depends_on:
db:
condition: service_healthy
volumes:
- wp_data:/var/www/html
volumes:
db_data:
wp_data: