1- FROM node:20-slim AS base
1+ # Build with:
2+ # docker compose -f packages/evals/docker-compose.yml build runner
23
3- # Install pnpm
4- ENV PNPM_HOME="/pnpm"
5- ENV PATH="$PNPM_HOME:$PATH"
6- RUN corepack enable
7- RUN npm install -g npm@latest npm-run-all
4+ # Test with:
5+ # docker compose -f packages/evals/docker-compose.yml run --rm runner bash
6+
7+ FROM debian:bookworm-slim AS base
88
9- # Install system packages
10- RUN apt update && \
11- apt install -y \
9+ # Install system packages (excluding language runtimes - those come from mise)
10+ RUN apt-get update && \
11+ apt-get install -y \
1212 curl \
1313 git \
1414 vim \
@@ -22,34 +22,59 @@ RUN apt update && \
2222 gpg \
2323 xvfb \
2424 cmake \
25- golang-go \
26- default-jre \
27- python3 \
28- python3-venv \
29- python3-dev \
30- python3-pip \
25+ build-essential \
3126 && rm -rf /var/lib/apt/lists/*
3227
3328# Install Docker cli
3429RUN curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \
3530 && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \
36- && apt update && apt install -y docker-ce-cli \
31+ && apt-get update && apt-get install -y docker-ce-cli \
3732 && rm -rf /var/lib/apt/lists/*
3833
3934# Install VS Code
4035RUN wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg \
4136 && install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg \
4237 && echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | tee /etc/apt/sources.list.d/vscode.list > /dev/null \
4338 && rm -f packages.microsoft.gpg \
44- && apt update && apt install -y code \
39+ && apt-get update && apt-get install -y code \
4540 && rm -rf /var/lib/apt/lists/*
4641
4742WORKDIR /roo
4843
49- # Install rust
50- ARG RUST_VERSION=1.87.0
51- RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain ${RUST_VERSION} \
52- && echo 'source $HOME/.cargo/env' >> $HOME/.bashrc
44+ # Install mise (https://mise.jdx.dev) for language runtime management
45+ RUN curl https://mise.run | sh \
46+ && /root/.local/bin/mise --version
47+
48+ # Set up mise environment
49+ ENV MISE_DATA_DIR="/root/.local/share/mise"
50+ ENV PATH="/root/.local/share/mise/shims:/root/.local/bin:$PATH"
51+
52+ # Define language runtime versions (matching setup.sh)
53+ ARG NODE_VERSION=20.19.2
54+ ARG PYTHON_VERSION=3.13.2
55+ ARG GO_VERSION=1.24.2
56+ ARG RUST_VERSION=1.85.1
57+ ARG JAVA_VERSION=openjdk-17
58+ ARG GRADLE_VERSION=8.7
59+ ARG UV_VERSION=0.7.11
60+
61+ # Install language runtimes via mise
62+ RUN mise use --global node@${NODE_VERSION} \
63+ && mise use --global python@${PYTHON_VERSION} \
64+ && mise use --global go@${GO_VERSION} \
65+ && mise use --global rust@${RUST_VERSION} \
66+ && mise use --global java@${JAVA_VERSION} \
67+ && mise use --global gradle@${GRADLE_VERSION} \
68+ && mise use --global uv@${UV_VERSION} \
69+ && mise reshim
70+
71+ # Verify installations
72+ RUN node --version && python --version && go version && rustc --version && java --version && gradle --version && uv --version
73+
74+ # Install pnpm (after node is available from mise)
75+ ENV PNPM_HOME="/root/.local/share/pnpm"
76+ ENV PATH="$PNPM_HOME:$PATH"
77+ RUN npm install -g pnpm npm-run-all
5378
5479# Install VS Code extensions
5580ARG GOLANG_EXT_VERSION=0.46.1
@@ -72,11 +97,9 @@ RUN git clone ${EVALS_REPO_URL} evals \
7297 && cd evals \
7398 && git checkout ${EVALS_COMMIT}
7499
75- # Install uv and sync python dependencies
76- ARG UV_VERSION=0.7.11
100+ # Sync python dependencies for evals
77101WORKDIR /roo/evals/python
78- RUN curl -LsSf https://github.com/astral-sh/uv/releases/download/${UV_VERSION}/uv-installer.sh | sh \
79- && /root/.local/bin/uv sync
102+ RUN uv sync
80103
81104WORKDIR /roo/repo
82105
0 commit comments