FROM wordpress:php8.2-apache

# MariaDB client (for DB health checks) + utilities
RUN apt-get update && apt-get install -y --no-install-recommends \
        default-mysql-client \
        less \
        unzip \
    && rm -rf /var/lib/apt/lists/*

# WP-CLI
RUN curl -fsSL https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -o /usr/local/bin/wp \
    && chmod +x /usr/local/bin/wp

# Node.js 20 (for Playwright)
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
    && apt-get install -y --no-install-recommends nodejs \
    && rm -rf /var/lib/apt/lists/*

# Playwright + Chromium (installed to /opt/playwright so host mount of /tests won't shadow it)
RUN mkdir -p /opt/playwright && cd /opt/playwright \
    && npm init -y \
    && npm install @playwright/test \
    && npx playwright install --with-deps chromium

ENV NODE_PATH=/opt/playwright/node_modules

# WordPress setup script
COPY scripts/setup-wordpress.sh /usr/local/bin/setup-wordpress.sh
RUN chmod +x /usr/local/bin/setup-wordpress.sh

# Custom entrypoint that runs setup in background
COPY scripts/entrypoint.sh /usr/local/bin/custom-entrypoint.sh
RUN chmod +x /usr/local/bin/custom-entrypoint.sh

ENTRYPOINT ["custom-entrypoint.sh"]
CMD ["apache2-foreground"]
