FROM python:3.11-slim

USER root

RUN apt-get update && apt-get install -y --no-install-recommends \
    socat \
    build-essential \
    libgmp-dev \
    libmpfr-dev \
    libmpc-dev \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /chal
COPY chal.py stronk_rabin_api.py /chal/
RUN pip install --no-cache-dir pycryptodome gmpy2 sympy

EXPOSE 1337

CMD ["socat", "-T60", "TCP-LISTEN:1337,reuseaddr,fork", "EXEC:'python3 -u /chal/chal.py'"]
