Skip to content

Commit 580479a

Browse files
committed
Improve Docker setup for evals
1 parent 664346e commit 580479a

File tree

4 files changed

+99
-50
lines changed

4 files changed

+99
-50
lines changed

.dockerignore

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,28 @@
11
# Build artifacts
22
bin/
3-
!bin/roo-code-latest.vsix
43
dist/
54
**/dist/
65
out/
76
**/out/
7+
src/webview-ui/
88

9-
# Dependencies
9+
# dependencies
1010
node_modules/
1111
**/node_modules/
1212

13-
# Test and development files
13+
# testing
1414
coverage/
1515
**/.vscode-test/
16+
**/mock/
1617

18+
# devtools
1719
knip.json
1820
.husky/
21+
22+
# monorepo
23+
.turbo/
24+
**/.turbo/
25+
26+
# next.js
27+
**/.next/
28+
.vercel

packages/evals/Dockerfile

Lines changed: 78 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
1+
# docker build -f packages/evals/Dockerfile -t roo-code-evals .
2+
# docker run -it roo-code-evals
3+
14
FROM node:20-slim AS base
2-
ENV PNPM_HOME="/pnpm"
3-
ENV PATH="$PNPM_HOME:$PATH"
5+
6+
# Install pnpm
7+
ENV PNPM_HOME="/pnpm"
8+
ENV PATH="$PNPM_HOME:$PATH"
49
RUN corepack enable
510
RUN npm install -g npm@latest
611
RUN npm install -g npm-run-all
7-
# Install dependencies
12+
13+
# Install system packages
814
RUN apt update && apt install -y sudo curl git vim jq
915

1016
# Create a `vscode` user
1117
RUN useradd -m vscode -s /bin/bash && \
1218
echo "vscode ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/vscode && \
1319
chmod 0440 /etc/sudoers.d/vscode
20+
1421
# Install VS Code
1522
# https://code.visualstudio.com/docs/setup/linux
1623
RUN apt install -y wget gpg apt-transport-https
@@ -19,59 +26,84 @@ RUN install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/p
1926
RUN 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
2027
RUN rm -f packages.microsoft.gpg
2128
RUN apt update && apt install -y code
29+
2230
# Install Xvfb
2331
RUN apt install -y xvfb
32+
2433
# [cpp] Install cmake 3.28.3
2534
RUN apt install -y cmake
35+
2636
# [go] Install Go 1.22.2
2737
RUN apt install -y golang-go
38+
2839
# [java] Install Java 21
2940
RUN apt install -y default-jre
41+
3042
# [python] Install Python 3.12.3 and uv 0.6.6
3143
RUN apt install -y python3 python3-venv python3-dev python3-pip
44+
45+
WORKDIR /home/vscode
46+
USER vscode
47+
3248
# [rust] Install Rust 1.85
3349
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
3450
RUN echo 'source $HOME/.cargo/env' >> $HOME/.bashrc
35-
WORKDIR /home/vscode
36-
USER vscode
37-
38-
# Copy evals
39-
RUN git clone https://github.com/RooCodeInc/Roo-Code-Evals.git evals
40-
41-
# Prepare evals
42-
WORKDIR /home/vscode/evals/python
43-
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
44-
RUN /home/vscode/.local/bin/uv sync
45-
46-
WORKDIR /home/vscode/repo/benchmark
47-
48-
# Install dependencies
49-
COPY --chown=vscode:vscode ./evals/package.json ./evals/pnpm-lock.yaml ./evals/pnpm-workspace.yaml ./evals/.npmrc ./
50-
RUN mkdir -p apps/cli apps/web \
51-
config/eslint config/typescript \
52-
packages/db packages/ipc packages/lib packages/types
53-
COPY --chown=vscode:vscode ./evals/apps/cli/package.json ./apps/cli/
54-
COPY --chown=vscode:vscode ./evals/apps/web/package.json ./apps/web/
55-
COPY --chown=vscode:vscode ./evals/config/eslint/package.json ./config/eslint/
56-
COPY --chown=vscode:vscode ./evals/config/typescript/package.json ./config/typescript/
57-
COPY --chown=vscode:vscode ./evals/packages/db/package.json ./packages/db/
58-
COPY --chown=vscode:vscode ./evals/packages/ipc/package.json ./packages/ipc/
59-
COPY --chown=vscode:vscode ./evals/packages/lib/package.json ./packages/lib/
60-
COPY --chown=vscode:vscode ./evals/packages/types/package.json ./packages/types/
61-
RUN pnpm install
62-
63-
# Copy & install extension
64-
COPY --chown=vscode:vscode ./bin/roo-code-latest.vsix ./
65-
RUN code --debug --install-extension ./roo-code-latest.vsix
66-
67-
# Copy application code
68-
COPY --chown=vscode:vscode ./evals ./
69-
70-
# Copy environment variables
71-
COPY --chown=vscode:vscode ./evals/.env ./
72-
73-
# Push database schema
74-
RUN pnpm --filter @roo-code/evals db:push --force
75-
76-
EXPOSE 3000
77-
CMD ["pnpm", "web"]
51+
52+
# Copy evals
53+
RUN git clone https://github.com/RooCodeInc/Roo-Code-Evals.git evals
54+
55+
# Prepare evals
56+
WORKDIR /home/vscode/evals/python
57+
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
58+
RUN /home/vscode/.local/bin/uv sync
59+
60+
WORKDIR /home/vscode/repo
61+
62+
# Install npm packages
63+
RUN mkdir -p \
64+
scripts \
65+
apps/web-evals \
66+
packages/build \
67+
packages/cloud \
68+
packages/config-eslint \
69+
packages/config-typescript \
70+
packages/evals \
71+
packages/ipc \
72+
packages/telemetry \
73+
packages/types \
74+
src \
75+
webview-ui
76+
77+
COPY --chown=vscode:vscode ./package.json ./
78+
COPY --chown=vscode:vscode ./pnpm-lock.yaml ./
79+
COPY --chown=vscode:vscode ./pnpm-workspace.yaml ./
80+
COPY --chown=vscode:vscode ./scripts/bootstrap.mjs ./scripts/
81+
COPY --chown=vscode:vscode ./apps/web-evals/package.json ./apps/web-evals/
82+
COPY --chown=vscode:vscode ./packages/build/package.json ./packages/build/
83+
COPY --chown=vscode:vscode ./packages/cloud/package.json ./packages/cloud/
84+
COPY --chown=vscode:vscode ./packages/config-eslint/package.json ./packages/config-eslint/
85+
COPY --chown=vscode:vscode ./packages/config-typescript/package.json ./packages/config-typescript/
86+
COPY --chown=vscode:vscode ./packages/evals/package.json ./packages/evals/
87+
COPY --chown=vscode:vscode ./packages/ipc/package.json ./packages/ipc/
88+
COPY --chown=vscode:vscode ./packages/telemetry/package.json ./packages/telemetry/
89+
COPY --chown=vscode:vscode ./packages/types/package.json ./packages/types/
90+
COPY --chown=vscode:vscode ./src/package.json ./src/
91+
COPY --chown=vscode:vscode ./webview-ui/package.json ./webview-ui/
92+
RUN pnpm install
93+
94+
# Build the extension
95+
COPY --chown=vscode:vscode . ./
96+
RUN pnpm vsix -- --out ../bin/roo-code.vsix
97+
98+
# Copy & install extension
99+
RUN code --debug --install-extension ./roo-code.vsix
100+
101+
# Copy env variables
102+
# COPY --chown=vscode:vscode packages/evals/.env ./
103+
104+
# Push database schema
105+
# RUN pnpm --filter @roo-code/evals db:push --force
106+
107+
# EXPOSE 3000
108+
# CMD ["pnpm", "web"]
109+
CMD ["bash"]

packages/evals/docker-compose.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# docker compose up --build --no-start
2+
13
services:
24
postgres:
35
container_name: postgres-evals
@@ -11,3 +13,8 @@ services:
1113
- POSTGRES_USER=postgres
1214
- POSTGRES_PASSWORD=password
1315
- POSTGRES_DATABASES=evals_development,evals_test
16+
runner:
17+
container_name: runner-evals
18+
build:
19+
context: ../../
20+
dockerfile: packages/evals/Dockerfile

packages/evals/scripts/setup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ build_extension() {
2828
echo "🔨 Building the Roo Code extension..."
2929
cd ..
3030
mkdir -p bin
31-
pnpm build -- --out ../bin/roo-code-$(git rev-parse --short HEAD).vsix || exit 1
31+
pnpm vsix -- --out ../bin/roo-code-$(git rev-parse --short HEAD).vsix || exit 1
3232
code --install-extension bin/roo-code-$(git rev-parse --short HEAD).vsix || exit 1
3333
cd evals
3434
}

0 commit comments

Comments
 (0)