ci-triage-env / Dockerfile
Prasham.Jain
fix(docker): COPY README.md into build context (hatchling metadata requires it)
54e5bb5
# CI-Triage OpenEnv submission container.
#
# The hackathon evaluation harness will:
# 1. docker build -t ci-triage .
# 2. docker run -p 8000:8000 ci-triage
# 3. POST /reset, POST /step, GET /state, POST /mcp … against port 8000
#
# Scenarios are downloaded from HuggingFace Hub at container start unless
# CI_TRIAGE_SCENARIO_SOURCE points to a local path that already has files.
FROM python:3.11-slim
# System deps: git is needed by huggingface_hub; curl for health checks.
RUN apt-get update && apt-get install -y --no-install-recommends \
git curl \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Install Python deps first (cached layer).
COPY pyproject.toml README.md ./
COPY src/ src/
RUN pip install --no-cache-dir -e ".[data]"
# Copy the rest of the project.
COPY data_artifacts/ data_artifacts/
COPY openenv.yaml ./
# Entrypoint handles optional scenario download then launches uvicorn.
COPY docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
# OpenEnv evaluation probes port 8000 by default.
EXPOSE 8000
# CI_TRIAGE_SCENARIO_SOURCE: override to "hf://org/dataset" to pull from HF Hub,
# or leave empty to use bundled data_artifacts/scenarios/.
ENV CI_TRIAGE_SCENARIO_SOURCE=""
# HF_TOKEN is injected by the evaluation harness when the dataset is private.
ENV HF_TOKEN=""
ENTRYPOINT ["/docker-entrypoint.sh"]