services: db: image: mariadb:11 container_name: wordpress-db restart: unless-stopped command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW environment: MYSQL_DATABASE: ${WP_DB_NAME} MYSQL_USER: ${WP_DB_USER} MYSQL_PASSWORD: ${WP_DB_PASSWORD} MYSQL_ROOT_PASSWORD: ${WP_DB_ROOT_PASSWORD} volumes: - ./db_data:/var/lib/mysql healthcheck: test: ["CMD-SHELL", "mariadb-admin ping -h 127.0.0.1 -u$$MYSQL_USER -p$$MYSQL_PASSWORD || exit 1"] interval: 10s timeout: 5s retries: 10 wordpress: image: wordpress:php8.2-apache container_name: wordpress-app restart: unless-stopped depends_on: db: condition: service_healthy ports: - "127.0.0.1:${WP_PORT}:80" environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_NAME: ${WP_DB_NAME} WORDPRESS_DB_USER: ${WP_DB_USER} WORDPRESS_DB_PASSWORD: ${WP_DB_PASSWORD} volumes: - ./wp_data:/var/www/html healthcheck: test: ["CMD-SHELL", "curl -fsS http://127.0.0.1/wp-login.php >/dev/null || exit 1"] interval: 30s timeout: 5s retries: 10