services:
  db:
    image: mariadb:11.8.6-noble
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: ${MYSQL_DATABASE:-wordpress}
      MYSQL_USER: ${MYSQL_USER:-wordpress}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD:-wordpress}
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-wordpress_root}
    healthcheck:
      test:
        - CMD-SHELL
        - mariadb-admin ping -h 127.0.0.1 -uroot -p$${MYSQL_ROOT_PASSWORD} --silent
      interval: 5s
      timeout: 5s
      retries: 20
      start_period: 10s
    volumes:
      - db_data:/var/lib/mysql

  wordpress:
    image: wordpress:6.9.4-php8.3-apache
    restart: unless-stopped
    dns:
      - 8.8.8.8
      - 8.8.4.4
    depends_on:
      db:
        condition: service_healthy
    ports:
      - "${WORDPRESS_PORT:-8082}:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: ${MYSQL_DATABASE:-wordpress}
      WORDPRESS_DB_USER: ${MYSQL_USER:-wordpress}
      WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD:-wordpress}
    volumes:
      - wp_data:/var/www/html
      - ./:/var/www/html/wp-content/plugins/blackstone-online-gateway
      - ./docker/wordpress/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini:ro

  wpcli:
    image: wordpress:cli-2.12.0-php8.3
    profiles:
      - tools
    depends_on:
      db:
        condition: service_healthy
      wordpress:
        condition: service_started
    working_dir: /var/www/html
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: ${MYSQL_DATABASE:-wordpress}
      WORDPRESS_DB_USER: ${MYSQL_USER:-wordpress}
      WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD:-wordpress}
    volumes:
      - wp_data:/var/www/html
      - ./:/var/www/html/wp-content/plugins/blackstone-online-gateway
      - ./docker/wordpress/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini:ro

  phpmyadmin:
    image: phpmyadmin:5.2.3-apache
    restart: unless-stopped
    depends_on:
      db:
        condition: service_healthy
    ports:
      - "${PHPMYADMIN_PORT:-8083}:80"
    environment:
      PMA_HOST: db
      PMA_PORT: 3306
      PMA_USER: ${MYSQL_USER:-wordpress}
      PMA_PASSWORD: ${MYSQL_PASSWORD:-wordpress}
      UPLOAD_LIMIT: 64M

volumes:
  wp_data:
  db_data:
