Skip to content

Commit 9fd086f

Browse files
committed
DRY up Dockerfiles
1 parent 283e201 commit 9fd086f

File tree

4 files changed

+55
-81
lines changed

4 files changed

+55
-81
lines changed

benchmark/Dockerfile

Lines changed: 4 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,17 @@
1+
# docker build -f Dockerfile.base -t roo-code-benchmark-base ..
12
# docker build -f Dockerfile -t roo-code-benchmark ..
23
# docker run -d -it roo-code-benchmark
34
# docker exec -it $(docker ps --filter "ancestor=roo-code-benchmark" -q) /bin/bash
45

5-
FROM ubuntu:latest
6+
FROM roo-code-benchmark-base
67

7-
# Install dependencies
8-
RUN apt update && apt install -y curl git vim
9-
10-
# Install VS Code
11-
# https://code.visualstudio.com/docs/setup/linux
12-
RUN apt update && apt install -y wget gpg apt-transport-https
13-
RUN wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
14-
RUN install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
15-
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
16-
RUN rm -f packages.microsoft.gpg
17-
RUN apt update && apt install -y code
18-
19-
# Install Xvfb
20-
RUN apt install -y xvfb
21-
22-
# Install node.js
23-
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
24-
RUN apt update && apt install -y nodejs
25-
26-
# Create a `vscode` user
27-
RUN apt install -y sudo && \
28-
useradd -m vscode -s /bin/bash && \
29-
echo "vscode ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/vscode && \
30-
chmod 0440 /etc/sudoers.d/vscode
31-
32-
WORKDIR /home/vscode
33-
USER vscode
34-
35-
COPY benchmark/entrypoint.sh /usr/local/bin/
368
COPY --chown=vscode:vscode . /home/vscode/repo
379

38-
WORKDIR /home/vscode/repo
39-
RUN npm run install-extension
40-
RUN npm run compile
41-
42-
WORKDIR /home/vscode/repo/webview-ui
43-
RUN npm install
44-
RUN npm run build
45-
4610
WORKDIR /home/vscode/repo/benchmark
47-
RUN npm install
48-
RUN npm run build
49-
RUN git clone https://github.com/cte/Roo-Code-Benchmark.git exercises
50-
11+
USER vscode
5112
CMD ["/bin/bash"]
5213

14+
# Commented out code preserved from original Dockerfile
5315
# FROM buildpack-deps:jammy
5416

5517
# # Install Python 3.11

benchmark/Dockerfile.base

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
FROM ubuntu:latest
2+
3+
# Install dependencies
4+
RUN apt update && apt install -y curl git vim
5+
6+
# Install VS Code
7+
# https://code.visualstudio.com/docs/setup/linux
8+
RUN apt update && apt install -y wget gpg apt-transport-https
9+
RUN wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
10+
RUN install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
11+
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
12+
RUN rm -f packages.microsoft.gpg
13+
RUN apt update && apt install -y code
14+
15+
# Install Xvfb
16+
RUN apt install -y xvfb
17+
18+
# Install node.js
19+
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
20+
RUN apt update && apt install -y nodejs
21+
22+
# Create a `vscode` user
23+
RUN apt install -y sudo && \
24+
useradd -m vscode -s /bin/bash && \
25+
echo "vscode ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/vscode && \
26+
chmod 0440 /etc/sudoers.d/vscode
27+
28+
WORKDIR /home/vscode
29+
USER vscode
30+
31+
COPY --chown=vscode:vscode package*.json /home/vscode/repo/
32+
COPY --chown=vscode:vscode webview-ui/package*.json /home/vscode/repo/webview-ui/
33+
COPY --chown=vscode:vscode e2e/package*.json /home/vscode/repo/e2e/
34+
COPY --chown=vscode:vscode benchmark/package*.json /home/vscode/repo/benchmark/
35+
36+
WORKDIR /home/vscode/repo
37+
RUN npm run install:all
38+
39+
WORKDIR /home/vscode/repo/benchmark
40+
RUN git clone https://github.com/cte/Roo-Code-Benchmark.git exercises

benchmark/Dockerfile.dev

Lines changed: 7 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,14 @@
1+
# docker build -f Dockerfile.base -t roo-code-benchmark-base ..
12
# docker build -f Dockerfile.dev -t roo-code-benchmark-dev ..
2-
# docker run -d -p 2222:22 -it roo-code-benchmark-dev
3+
# docker run -d -p 2222:22 -v ~/Documents/Roo-Code:/home/vscode/repo -it roo-code-benchmark-dev
34
# docker exec -it $(docker ps --filter "ancestor=roo-code-benchmark-dev" -q) /bin/bash
45
# ssh vscode@localhost -p 2222
56
# Or, use VSCode SSH remote extension to connect.
67

7-
FROM ubuntu:latest
8+
FROM roo-code-benchmark-base
89

9-
# Install dependencies
10-
RUN apt update && apt install -y curl git vim
11-
12-
# Install VS Code
13-
# https://code.visualstudio.com/docs/setup/linux
14-
RUN apt update && apt install -y wget gpg apt-transport-https
15-
RUN wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
16-
RUN install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
17-
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
18-
RUN rm -f packages.microsoft.gpg
19-
RUN apt update && apt install -y code
20-
21-
# Install Xvfb
22-
RUN apt install -y xvfb
10+
WORKDIR /
11+
USER root
2312

2413
# Install SSH server
2514
RUN apt install -y openssh-server
@@ -28,34 +17,16 @@ RUN mkdir -p /var/run/sshd && \
2817
echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
2918
RUN ssh-keygen -A
3019

31-
# Install node.js
32-
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
33-
RUN apt update && apt install -y nodejs
34-
35-
# Create a `vscode` user
36-
RUN apt install -y sudo && \
37-
useradd -m vscode -s /bin/bash && \
38-
echo "vscode ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/vscode && \
39-
chmod 0440 /etc/sudoers.d/vscode
40-
41-
WORKDIR /home/vscode
42-
USER vscode
43-
20+
# Setup SSH keys
4421
RUN mkdir -p /home/vscode/.ssh
4522
RUN echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDKGzg3BQ0QHU4m6G6CAdQ57LnBVljlPWfdySrsjV3twQaOYoJ8eEy1ck7kYZfH7DIbCteH4hkNIk32ghjWE84j3unO2/3wGC+CId9raZMudi8UbNgAFMYZZqTcrWR1lCxSLpDNT01JHYHw4BCMkJ4XjH2so+b5t/OzKVqvLJHOVTE7aZARsqrdQdiAmd9bbArFIoaLnvHYvArPprLU9clfhQJrAXi484t4eK2h2lMtiitmHph9WpcTxYiDdEg4fxlA2yYDkQZGcjoNPFTBEP5RpmXMcNV7/Zb2U0rJIOPrFqIwZ5yG79Kic8ajPdtmGdVpYec/OlR1Oer0kfakU2RImTzJPZeGnXy/hvcQErAqgpzTLn7dz2YaWMYdcLm6HOmZl1nj3LauWmRcCB8cxM34GjFXMpNm+6Ey8pmgoCMGLdBjL5/xqT6PbQxbYgUJNXMc51qMX8C3lkX/muQD8pDaj5kLXJhYkCgVGwcoC+hbJAOYSry4NQ8aTsFmjyTkaTE= cte@monstera" > /home/vscode/.ssh/authorized_keys
4623
RUN chown -R vscode:vscode /home/vscode/.ssh
4724
RUN chmod 700 /home/vscode/.ssh
4825
RUN chmod 600 /home/vscode/.ssh/authorized_keys
4926

5027
COPY benchmark/entrypoint.sh /usr/local/bin/
51-
COPY --chown=vscode:vscode . /home/vscode/repo
52-
53-
WORKDIR /home/vscode/repo
54-
RUN npm run install:all
5528

5629
WORKDIR /home/vscode/repo/benchmark
57-
RUN git clone https://github.com/cte/Roo-Code-Benchmark.git exercises
58-
RUN npm run build
59-
30+
USER vscode
6031
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
6132
CMD ["/bin/bash"]

benchmark/package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,17 @@
99
"build": "rm -rf out && tsc -p tsconfig.json",
1010
"benchmark": "xvbf-run node out/run.js",
1111
"clean": "rimraf out",
12-
"docker:build": "docker build -f Dockerfile -t roo-code-benchmark ..",
12+
"docker:base:build": "docker build -f Dockerfile.base -t roo-code-benchmark-base ..",
13+
"docker:build": "npm run docker:base:build && docker build -f Dockerfile -t roo-code-benchmark ..",
1314
"docker:run": "docker run -d -it roo-code-benchmark",
1415
"docker:start": "npm run docker:build && npm run docker:run",
1516
"docker:shell": "docker exec -it $(docker ps --filter \"ancestor=roo-code-benchmark\" -q) /bin/bash",
1617
"docker:benchmark": "docker exec -it $(docker ps --filter \"ancestor=roo-code-benchmark\" -q) npm run benchmark --",
1718
"docker:stop": "docker stop $(docker ps --filter \"ancestor=roo-code-benchmark\" -q)",
1819
"docker:rm": "docker rm $(docker ps -a --filter \"ancestor=roo-code-benchmark\" -q)",
1920
"docker:clean": "npm run docker:stop && npm run docker:rm",
20-
"docker:dev:build": "docker build -f Dockerfile.dev -t roo-code-benchmark-dev ..",
21-
"docker:dev:run": "docker run -d -p 2222:22 -it roo-code-benchmark-dev",
21+
"docker:dev:build": "npm run docker:base:build && docker build -f Dockerfile.dev -t roo-code-benchmark-dev ..",
22+
"docker:dev:run": "docker run -d -p 2222:22 -v ~/Documents/Roo-Code:/home/vscode/repo -it roo-code-benchmark-dev",
2223
"docker:dev:start": "npm run docker:dev:build && npm run docker:dev:run",
2324
"docker:dev:shell": "docker exec -it $(docker ps --filter \"ancestor=roo-code-benchmark-dev\" -q) /bin/bash",
2425
"docker:dev:benchmark": "docker exec -it $(docker ps --filter \"ancestor=roo-code-benchmark-dev\" -q) npm run benchmark --",

0 commit comments

Comments
 (0)