From 74ae0e0dfc6c88f2f051a440c6ab7c7fc75e8fba Mon Sep 17 00:00:00 2001 From: Aman Sharma Date: Fri, 2 Oct 2026 18:22:10 +0200 Subject: [PATCH 1/2] chore: install every ecosystem's toolchain in the benchmark image Agents can now run cargo, go, mvn, pip/uv and gh as on a dev machine, including generating lockfiles. Trixie's Python 3.13 keeps pip from hiding releases that need a newer interpreter (numpy 2.5.3), and the default Bash timeout is raised to 5 minutes for first-run downloads. Co-Authored-By: Claude Opus 5.5 --- benchmark/Dockerfile | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/benchmark/Dockerfile b/benchmark/Dockerfile index 9723dd9c..f03121a6 100644 --- a/benchmark/Dockerfile +++ b/benchmark/Dockerfile @@ -1,3 +1,21 @@ -FROM node:22-bookworm +FROM node:22-trixie + +# A toolchain for every benchmarked ecosystem (npm, git and curl come with +# the base image), so agents can query registries and generate lockfiles as +# on a dev machine. Containers run as the host uid with HOME=/tmp, so caches +# land under /tmp; the rust image's toolchain dirs are already world-writable. +COPY --from=rust:1-trixie /usr/local/rustup /usr/local/rustup +COPY --from=rust:1-trixie /usr/local/cargo /usr/local/cargo +COPY --from=golang:1-trixie /usr/local/go /usr/local/go +COPY --from=maven:3 /opt/java/openjdk /opt/java/openjdk +COPY --from=maven:3 /usr/share/maven /usr/share/maven +COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /usr/local/bin/ +ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo JAVA_HOME=/opt/java/openjdk \ + PATH=/usr/local/cargo/bin:/usr/local/go/bin:/opt/java/openjdk/bin:/usr/share/maven/bin:$PATH +RUN apt-get update && apt-get install -y --no-install-recommends python3-pip python3-venv gh \ + && rm -rf /var/lib/apt/lists/* + RUN npm install -g @anthropic-ai/claude-code +# Fresh caches make first cargo/mvn/go runs slow; 5 min instead of the 2 min default. +ENV BASH_DEFAULT_TIMEOUT_MS=300000 USER node From 4ab475aef9e18d6f179ead0f267b94b8b9378ca6 Mon Sep 17 00:00:00 2001 From: Aman Sharma Date: Fri, 2 Oct 2026 18:28:35 +0200 Subject: [PATCH 2/2] chore: add a bare python command to the benchmark image Co-Authored-By: Claude Opus 5.5 --- benchmark/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/Dockerfile b/benchmark/Dockerfile index f03121a6..66d8ca7d 100644 --- a/benchmark/Dockerfile +++ b/benchmark/Dockerfile @@ -12,7 +12,7 @@ COPY --from=maven:3 /usr/share/maven /usr/share/maven COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /usr/local/bin/ ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo JAVA_HOME=/opt/java/openjdk \ PATH=/usr/local/cargo/bin:/usr/local/go/bin:/opt/java/openjdk/bin:/usr/share/maven/bin:$PATH -RUN apt-get update && apt-get install -y --no-install-recommends python3-pip python3-venv gh \ +RUN apt-get update && apt-get install -y --no-install-recommends python3-pip python3-venv python-is-python3 gh \ && rm -rf /var/lib/apt/lists/* RUN npm install -g @anthropic-ai/claude-code