# syntax=docker/dockerfile:1.7
#
# Runtime image for litellm-doctor (Python app via uv — not a PyInstaller binary).
#
#   docker build -t litellm-doctor:latest .
#   docker run --rm -e OPENAI_API_KEY=sk-... -e OPENAI_BASE_URL=http://host:4000/v1 \
#     litellm-doctor:latest list

FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim AS builder

WORKDIR /app
ENV UV_COMPILE_BYTECODE=1 \
    UV_LINK_MODE=copy \
    UV_PYTHON_DOWNLOADS=0

COPY pyproject.toml uv.lock README.md ./
COPY src ./src
COPY tiktoken_cache ./tiktoken_cache
COPY main.py ./

RUN --mount=type=cache,target=/root/.cache/uv \
    uv sync --frozen --no-dev --no-editable

FROM python:3.12-slim-bookworm AS runtime

RUN apt-get update \
 && apt-get install -y --no-install-recommends ca-certificates \
 && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY --from=builder /app/.venv /app/.venv
# Vendored tokenizer files (also force-included in the wheel under helpers/)
COPY --from=builder /app/tiktoken_cache /app/tiktoken_cache

ENV PATH="/app/.venv/bin:$PATH" \
    LITELLM_DOCTOR_DATA=/app \
    PYTHONDONTWRITEBYTECODE=1

ENTRYPOINT ["llm"]
