Skip to content

Commit 5566e90

Browse files
committed
Evals Dockerfile improvements
1 parent bb5d7b9 commit 5566e90

File tree

1 file changed

+48
-25
lines changed

1 file changed

+48
-25
lines changed

packages/evals/Dockerfile.runner

Lines changed: 48 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
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
3429
RUN 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
4035
RUN 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

4742
WORKDIR /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
5580
ARG 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
77101
WORKDIR /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

81104
WORKDIR /roo/repo
82105

0 commit comments

Comments
 (0)