FROM python:3.13-slim

# Install display and VNC deps
RUN apt-get update -qq && apt-get install -y -qq --no-install-recommends \
    xvfb x11vnc websockify novnc \
    libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 \
    libxkbcommon0 libxcomposite1 libxdamage1 libxrandr2 libgbm1 \
    libpango-1.0-0 libcairo2 libasound2 libxshmfence1 libgtk-3-0 \
    fonts-liberation && \
    rm -rf /var/lib/apt/lists/*

# Install Python deps
COPY pyproject.toml uv.lock /app/
WORKDIR /app
RUN pip install uv && uv sync --frozen

# Install Playwright Chromium
RUN uv run playwright install chromium

# Copy source
COPY . /app/

# Entrypoint script
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

EXPOSE 6080 8080

ENTRYPOINT ["/entrypoint.sh"]
