FROM python:3.12-slim

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PIP_NO_CACHE_DIR=1 \
    PORT=5972

WORKDIR /app

RUN apt-get update && apt-get install -y --no-install-recommends \
      libgl1 libglib2.0-0 \
    && rm -rf /var/lib/apt/lists/*

COPY requirements.txt ./
RUN pip install --prefer-binary --only-binary=numpy,opencv-python-headless,onnxruntime,Pillow \
      -r requirements.txt

COPY config.py service.py blocked-hashes.txt ./
COPY scripts/verify_model.py scripts/verify_model.py

EXPOSE 5972
HEALTHCHECK --interval=30s --timeout=5s --start-period=40s --retries=3 \
  CMD python -c "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://127.0.0.1:5972/health',timeout=4).status==200 else 1)"

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