FROM python:3.11-slim-bookworm

ARG FIREFOX_VERSION=140.0esr
ARG GECKO_VERSION=0.36.0

WORKDIR /app

RUN apt-get update \
  && apt-get install -y --no-install-recommends \
    ca-certificates \
    curl \
    xz-utils \
    libasound2 \
    libatk-bridge2.0-0 \
    libatk1.0-0 \
    libdbus-glib-1-2 \
    libdrm2 \
    libgbm1 \
    libgtk-3-0 \
    libnss3 \
    libx11-xcb1 \
    libxcomposite1 \
    libxdamage1 \
    libxrandr2 \
    libxshmfence1 \
    libxss1 \
    libxtst6 \
    fonts-liberation \
  && FIREFOX_URL="https://archive.mozilla.org/pub/firefox/releases/${FIREFOX_VERSION}/linux-x86_64/en-US/firefox-${FIREFOX_VERSION}.tar.xz" \
  && curl -fL "$FIREFOX_URL" -o /tmp/firefox.tar.xz \
  && tar -xJf /tmp/firefox.tar.xz -C /opt \
  && ln -s /opt/firefox/firefox /usr/bin/firefox \
  && rm -f /tmp/firefox.tar.xz \
  && GECKO_URL="https://github.com/mozilla/geckodriver/releases/download/v${GECKO_VERSION}/geckodriver-v${GECKO_VERSION}-linux64.tar.gz" \
  && curl -fL "$GECKO_URL" -o /tmp/geckodriver.tar.gz \
  && tar -xzf /tmp/geckodriver.tar.gz -C /usr/local/bin \
  && chmod +x /usr/local/bin/geckodriver \
  && rm -f /tmp/geckodriver.tar.gz \
  && rm -rf /var/lib/apt/lists/*

COPY requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r /app/requirements.txt

COPY . /app

ENV PYTHONUNBUFFERED=1
ENV MOZ_HEADLESS=1
ENV MOZ_HEADLESS_WIDTH=1920
ENV MOZ_HEADLESS_HEIGHT=1080

EXPOSE 5001

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