Skip to content

Commit 3f4ae36

Browse files
akshayliveclaude
andauthored
feat(docker): bake litellm extra into the docker image (#142)
The litellm judge dispatch route needs litellm available in-container since the checker runs there too under DockerRunner isolation, not just on the host. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
1 parent 8fff865 commit 3f4ae36

1 file changed

Lines changed: 13 additions & 9 deletions

File tree

‎docker/Dockerfile‎

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,16 @@ COPY src/ ./src/
4848
# experiments/default.yaml is force-included by hatchling per pyproject.toml.
4949
COPY experiments/default.yaml ./experiments/default.yaml
5050

51-
# Codex and Antigravity are always baked into the image -- peers to the
52-
# claude-code agent installed above -- so all built-in agents ship in every
53-
# build. `openai-codex` (+ its pinned cli-bin) and `google-antigravity` (which
54-
# bundles its `localharness` binary as a manylinux wheel) come from public PyPI,
55-
# so this needs no private-index credentials. The RUN below always passes
56-
# `--extra codex --extra antigravity`.
51+
# Codex, Antigravity, and litellm are always baked into the image -- codex/
52+
# antigravity are peers to the claude-code agent installed above, so all
53+
# built-in agents ship in every build; litellm backs the `checker_context.
54+
# api_route.route: litellm` judge dispatch (see pyproject.toml's `litellm`
55+
# extra), which every DockerRunner-isolated task needs available IN-container
56+
# since the checker runs there too, not just on the host. `openai-codex`
57+
# (+ its pinned cli-bin), `google-antigravity` (which bundles its
58+
# `localharness` binary as a manylinux wheel), and `litellm` all come from
59+
# public PyPI, so this needs no private-index credentials. The RUN below
60+
# always passes `--extra codex --extra antigravity --extra litellm`.
5761
#
5862
# CODER_EVAL_UV_EXTRAS carries ADDITIONAL opt-in extras on top of those; it
5963
# defaults to none. `make docker-image-full` passes `--extra uipath`, which
@@ -67,10 +71,10 @@ ARG CODER_EVAL_UV_EXTRAS=""
6771
# newer than the gate window); callers may override.
6872
ARG SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS="openai-codex-cli-bin,openai-codex,google-antigravity"
6973

70-
# All extras (codex, antigravity, and the opt-in uipath) resolve from public
71-
# PyPI per uv.lock, so the build needs no private-index credentials.
74+
# All extras (codex, antigravity, litellm, and the opt-in uipath) resolve from
75+
# public PyPI per uv.lock, so the build needs no private-index credentials.
7276
RUN export SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS="${SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS}" && \
73-
uv export --frozen --extra codex --extra antigravity ${CODER_EVAL_UV_EXTRAS} | uv pip install --system -r /dev/stdin
77+
uv export --frozen --extra codex --extra antigravity --extra litellm ${CODER_EVAL_UV_EXTRAS} | uv pip install --system -r /dev/stdin
7478

7579
# Sanity check: the in-container entrypoint subcommand must be wired up.
7680
RUN coder-eval _run-task-internal --help > /dev/null

0 commit comments

Comments
 (0)