# InfoLang bench harness — used by docker compose for one-command repro.
FROM python:3.11-slim

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PIP_NO_CACHE_DIR=1 \
    WANDB_MODE=offline

WORKDIR /app

# System deps for some optional backends / health checks.
RUN apt-get update && apt-get install -y --no-install-recommends \
    curl ca-certificates \
    && rm -rf /var/lib/apt/lists/*

COPY pyproject.toml README.md LICENSE constraints-backends.txt ./
COPY src ./src
COPY docs ./docs

# Install harness (+ optional competitor backends for same-image compare runs).
# Pin competitor SDKs via constraints when the backends extra is requested.
RUN pip install --upgrade pip \
    && pip install ".[backends]" -c constraints-backends.txt \
    || pip install .

ENTRYPOINT ["il-bench"]
CMD ["--help"]
