FROM python:3.12-slim

WORKDIR /app

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PYTHONPATH=/app \
    UV_HTTP_TIMEOUT=6000 \
    UV_PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple \
    UV_PIP_TRUSTED_HOST=pypi.tuna.tsinghua.edu.cn \
    ROUTED_CONFIDENCE_HOME=/app/data \
    ROUTED_CONFIDENCE_SELF_HOST=0.0.0.0 \
    ROUTED_CONFIDENCE_SELF_PORT=9876 \
    ROUTED_CONFIDENCE_STUDIO_ENABLED=false \
    ROUTED_CONFIDENCE_STUDIO_PORT=8765

COPY . /app/routed_confidence

RUN pip install uv -i https://pypi.tuna.tsinghua.edu.cn/simple \
    && uv pip install --system numpy -i https://pypi.tuna.tsinghua.edu.cn/simple \
    && uv pip install --system requests -i https://pypi.tuna.tsinghua.edu.cn/simple \
    && uv pip install --system "pyyaml>=6.0.2" -i https://pypi.tuna.tsinghua.edu.cn/simple \
    && mkdir -p /app/data \
    && chown -R 1019:1019 /app/data \
    && chmod +x /app/routed_confidence/deploy/start_confidence_self.sh

USER 1019:1019

EXPOSE 9876 8765

HEALTHCHECK --interval=30s --timeout=10s --start-period=20s --retries=3 \
    CMD python -c "import os, urllib.request; port=os.getenv('ROUTED_CONFIDENCE_SELF_PORT','9876'); urllib.request.urlopen(f'http://127.0.0.1:{port}/health', timeout=5)"

CMD ["/app/routed_confidence/deploy/start_confidence_self.sh"]
