mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
89 lines
2.9 KiB
Docker
89 lines
2.9 KiB
Docker
# docker build -f Dockerfile.base -t roo-code-benchmark-base ..
|
|
# docker build -f Dockerfile -t roo-code-benchmark ..
|
|
# 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
|
|
|
|
# Install dependencies
|
|
RUN apt update && apt install -y sudo curl git vim jq
|
|
|
|
# Create a `vscode` user
|
|
RUN useradd -m vscode -s /bin/bash && \
|
|
echo "vscode ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/vscode && \
|
|
chmod 0440 /etc/sudoers.d/vscode
|
|
|
|
# Install VS Code
|
|
# https://code.visualstudio.com/docs/setup/linux
|
|
RUN apt install -y wget gpg apt-transport-https
|
|
RUN wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
|
|
RUN install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
|
|
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
|
|
RUN rm -f packages.microsoft.gpg
|
|
RUN apt update && apt install -y code
|
|
|
|
# Install Xvfb
|
|
RUN apt install -y xvfb
|
|
|
|
# [cpp] Install cmake 3.28.3
|
|
RUN apt install -y cmake
|
|
|
|
# [go] Install Go 1.22.2
|
|
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
|
|
|
|
# [rust] Install Rust 1.85
|
|
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
|
|
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
|
|
|
|
# Prepare exercises
|
|
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 "DB_FILE_NAME=file:/tmp/benchmarks.db" > .env
|
|
RUN pnpm install
|
|
RUN npx drizzle-kit push
|
|
|
|
# Run web-ui
|
|
EXPOSE 3000
|
|
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
|
CMD ["/usr/bin/pnpm", "dev"]
|