# OPTION 2: Base on Playwright's official image (browsers preinstalled)
FROM mcr.microsoft.com/playwright/python:v1.53.0

USER root
WORKDIR /app

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

# ---- system deps for mysqlclient + python3-venv ----
RUN apt-get update && apt-get install -y --no-install-recommends \
    gcc \
    build-essential \
    pkg-config \
    default-libmysqlclient-dev \
    python3.12-dev \
    python3-venv \
  && rm -rf /var/lib/apt/lists/*

# ---- create & activate venv to avoid PEP 668 issues ----
ENV VIRTUAL_ENV=/opt/venv
RUN python -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"

# Upgrade pip/setuptools/wheel inside venv
RUN pip install --no-cache-dir --upgrade pip setuptools wheel

# Python deps
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# App code
COPY . .

# Fix permissions for non-root user (pwuser is pre-created in Playwright image)
RUN chown -R pwuser:pwuser /app
USER pwuser

EXPOSE 8000
CMD ["gunicorn", "api.wsgi:application", "--bind", "0.0.0.0:8000", "--workers", "3", "--timeout", "120", "--threads", "2"]
