FROM python:3.11-slim

ENV PYTHONUNBUFFERED=1 \
    PIP_NO_CACHE_DIR=1 \
    MODELS_DIR=/app/models \
    U2NET_HOME=/app/models/u2net \
    WORK_DIR=/tmp/klarbild \
    PORT=8080

WORKDIR /app

# System-Abhaengigkeiten (OpenMP fuer onnxruntime/opencv, curl fuer Modelle)
RUN apt-get update && apt-get install -y --no-install-recommends \
      curl ca-certificates libgomp1 libglib2.0-0 \
    && rm -rf /var/lib/apt/lists/*

COPY requirements.txt .
RUN pip install -r requirements.txt

# Super-Resolution-Modelle (EDSR/FSRCNN) beim Build backen
COPY scripts/ scripts/
RUN bash scripts/fetch_models.sh /app/models

# Freistell-Modell (rembg isnet-general-use) vom HuggingFace-Mirror vorladen,
# damit zur Laufzeit kein externer Download noetig ist
RUN mkdir -p /app/models/u2net && \
    curl -fL --retry 3 -o /app/models/u2net/isnet-general-use.onnx \
      "https://huggingface.co/tomjackson2023/rembg/resolve/main/isnet-general-use.onnx"

COPY app/ app/

EXPOSE 8080

# Simpler HTTP-Healthcheck (Health-Server laeuft im Bot-Prozess)
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:8080/health',timeout=3).status==200 else 1)"

CMD ["python", "-m", "app.bot"]
