services:
  db:
    # We use a mariadb image which supports both amd64 & arm64 architecture
    image: mariadb:10.6.4-focal
    container_name: db_wc_recurring
    command: '--default-authentication-plugin=mysql_native_password'
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=somewordpress
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wordpress
      - MYSQL_PASSWORD=wordpress
    expose:
      - 3306
      - 33060
    ports:
      - 3306:3306
  wordpress:
    image: wordpress_local
    container_name: wp_wc_recurring
    depends_on:
      - db
    build:
      context: .
    volumes:
      - wp_data:/var/www/html
      - ./:/var/www/html/wp-content/plugins/wc-recurring-pdf
      - ./msmtprc:/etc/msmtprc
    ports:
      - 80:80
    restart: always
    extra_hosts:
      - host.docker.internal:host-gateway
    env_file: .env
    environment:
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=wordpress
      - WORDPRESS_DB_NAME=wordpress
  setup:
    image: wordpress:cli-php8.2
    user: 33:33
    depends_on:
      - wordpress
    volumes:
      - wp_data:/var/www/html
      - ./:/var/www/html/wp-content/plugins/wc-recurring-pdf
    env_file: .env
    environment:
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=wordpress
      - WORDPRESS_DB_NAME=wordpress
    working_dir: /var/www/html
    entrypoint: [ "sh", "-c" ]
    command:
      - |
        set -e
        wp core install --url=http://localhost --title="$${WP_TITLE}" --admin_user="$${WP_USER}" --admin_password="$${WP_PASS}" --admin_email="$${WP_EMAIL}" --skip-email
        wp plugin install woocommerce
        wp plugin activate woocommerce
        wp plugin activate wc-recurring-pdf
        wp post create --post_type=page --post_title="Legacy Cart" --post_content="[woocommerce_cart]" --post_status=publish
        wp post create --post_type=page --post_title="Legacy Checkout" --post_content="[woocommerce_checkout]" --post_status=publish
volumes:
  db_data:
  wp_data:
