RUN npm install -g npm-run-all

This commit is contained in:
cte 2025-03-20 15:35:33 -07:00
parent f1fd4bbc2c
commit e8db2fb252
2 changed files with 29 additions and 30 deletions

View file

@ -3,7 +3,12 @@
# docker run -d -it -p 3000:3000 -v /tmp/benchmarks.db:/tmp/benchmarks.db roo-code-benchmark
# docker exec -it $(docker ps --filter "ancestor=roo-code-benchmark" -q) /bin/bash
FROM ubuntu:latest
FROM node:20-slim AS base
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable
RUN npm install -g npm@latest
RUN npm install -g npm-run-all
# Install dependencies
RUN apt update && apt install -y sudo curl git vim jq
@ -34,11 +39,6 @@ RUN apt install -y golang-go
# [java] Install Java 21
RUN apt install -y default-jre
# [javascript] Install Node.js v18.20.6
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN apt update && apt install -y nodejs
RUN npm install -g corepack@latest
# [python] Install Python 3.12.3 and uv 0.6.6
RUN apt install -y python3 python3-venv python3-dev python3-pip
@ -49,25 +49,8 @@ RUN echo 'source $HOME/.cargo/env' >> $HOME/.bashrc
WORKDIR /home/vscode
USER vscode
# Enable corepack and install pnpm for the vscode user
RUN corepack enable
RUN yes y | pnpm --version
COPY benchmark/entrypoint.sh /usr/local/bin/entrypoint.sh
# Copy and build dependencies
COPY --chown=vscode:vscode package*.json /home/vscode/repo/
COPY --chown=vscode:vscode webview-ui/package*.json /home/vscode/repo/webview-ui/
COPY --chown=vscode:vscode e2e/package*.json /home/vscode/repo/e2e/
COPY --chown=vscode:vscode benchmark/package*.json /home/vscode/repo/benchmark/
WORKDIR /home/vscode/repo
RUN npm run install:all
# Copy and build benchmark runner
COPY --chown=vscode:vscode . /home/vscode/repo
WORKDIR /home/vscode/repo/benchmark
RUN npm run build
# Copy exercises
WORKDIR /home/vscode
RUN git clone https://github.com/cte/Roo-Code-Benchmark.git exercises
@ -77,13 +60,23 @@ WORKDIR /home/vscode/exercises/python
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
RUN /home/vscode/.local/bin/uv sync
# Build web-ui
WORKDIR /home/vscode/exercises/web-ui
RUN echo "BENCHMARKS_DB_PATH=file:/tmp/benchmarks.db" > .env
RUN pnpm install
RUN npx drizzle-kit push
# Copy and build extension dependencies
WORKDIR /home/vscode/repo
COPY --chown=vscode:vscode package*.json /home/vscode/repo/
COPY --chown=vscode:vscode webview-ui/package*.json /home/vscode/repo/webview-ui/
RUN npm-run-all -l -p install-extension install-webview
# Copy extension and benchmark code
COPY --chown=vscode:vscode . /home/vscode/repo
# Build extension dependencies
WORKDIR /home/vscode/repo/benchmark
RUN pnpm install
# Initialize database
RUN echo "BENCHMARKS_DB_PATH=file:/tmp/benchmarks.db" > .env
RUN pnpm --filter @benchmark/db db:push
# Run web-ui
EXPOSE 3000
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["/usr/bin/pnpm", "dev"]

View file

@ -2,7 +2,13 @@
## Get Started
[Install](https://docs.docker.com/desktop/) Docker Desktop.
[Install](https://docs.docker.com/desktop/) and run Docker Desktop.
Build a container to run the Roo Code benchmarks:
```sh
docker build -f Dockerfile -t roo-code-benchmark ..
```
## Local Debugging