1+ # docker build -f packages/evals/Dockerfile -t roo-code-evals .
2+ # docker run -it roo-code-evals
3+
14FROM 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"
49RUN corepack enable
510RUN npm install -g npm@latest
611RUN npm install -g npm-run-all
7- # Install dependencies
12+
13+ # Install system packages
814RUN apt update && apt install -y sudo curl git vim jq
915
1016# Create a `vscode` user
1117RUN 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
1623RUN 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
1926RUN 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
2027RUN rm -f packages.microsoft.gpg
2128RUN apt update && apt install -y code
29+
2230# Install Xvfb
2331RUN apt install -y xvfb
32+
2433# [cpp] Install cmake 3.28.3
2534RUN apt install -y cmake
35+
2636# [go] Install Go 1.22.2
2737RUN apt install -y golang-go
38+
2839# [java] Install Java 21
2940RUN apt install -y default-jre
41+
3042# [python] Install Python 3.12.3 and uv 0.6.6
3143RUN 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
3349RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
3450RUN 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" ]
0 commit comments