# tradein-browser — camoufox Playwright WS server (изолированный контейнер Firefox).
# Backend подключается к этому контейнеру через playwright.firefox.connect.

FROM python:3.12-slim

ENV PYTHONUNBUFFERED=1 \
    PYTHONDONTWRITEBYTECODE=1

# Firefox runtime libs + ca-certificates для TLS
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
    --mount=type=cache,target=/var/lib/apt,sharing=locked \
    apt-get update && apt-get install -y --no-install-recommends \
    libgtk-3-0 \
    libasound2 \
    libdbus-glib-1-2 \
    libx11-xcb1 \
    libxtst6 \
    ca-certificates \
    && useradd --create-home --uid 1000 app

WORKDIR /app

# camoufox[geoip] тянет playwright как зависимость
RUN pip install --no-cache-dir "camoufox[geoip]"

COPY server.py ./server.py

# CRITICAL (#899): USER + ENV HOME должны быть установлены ДО fetch,
# чтобы Firefox-сборка легла в /home/app/.cache — туда же, куда рантайм её ищет.
# Без этого fetch под root кладёт браузер в /root/.cache и app при старте
# не находит Firefox ("browser not found").
USER app
ENV HOME=/home/app

RUN python -m camoufox fetch

EXPOSE 3000

CMD ["python", "server.py"]
