|
| 1 | +# docker compose build worker |
| 2 | +# Note: Requires $GH_TOKEN to be set as build argument. |
| 3 | + |
| 4 | +FROM roomote-base AS base |
| 5 | + |
| 6 | +# Install additional worker-specific packages |
| 7 | +RUN apt update && \ |
| 8 | + apt install -y \ |
| 9 | + xvfb \ |
| 10 | + && rm -rf /var/lib/apt/lists/* |
| 11 | + |
| 12 | +# Install VS Code |
| 13 | +RUN wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg \ |
| 14 | + && install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg \ |
| 15 | + && 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 | + && rm -f packages.microsoft.gpg \ |
| 17 | + && apt update && apt install -y code \ |
| 18 | + && rm -rf /var/lib/apt/lists/* |
| 19 | + |
| 20 | +WORKDIR /roo |
| 21 | + |
| 22 | +# Install extensions |
| 23 | +RUN mkdir -p /roo/.vscode \ |
| 24 | + && code --no-sandbox --user-data-dir /roo/.vscode --install-extension dbaeumer.vscode-eslint \ |
| 25 | + && code --no-sandbox --user-data-dir /roo/.vscode --install-extension esbenp.prettier-vscode \ |
| 26 | + && code --no-sandbox --user-data-dir /roo/.vscode --install-extension csstools.postcss \ |
| 27 | + && code --no-sandbox --user-data-dir /roo/.vscode --install-extension RooVeterinaryInc.roo-cline |
| 28 | + |
| 29 | +# Clone repo (requires $GH_TOKEN) |
| 30 | +ARG GH_TOKEN |
| 31 | +ENV GH_TOKEN=${GH_TOKEN} |
| 32 | +WORKDIR /roo/repos |
| 33 | +RUN git config --global user.email " [email protected]" |
| 34 | +RUN git config --global user.name "Roo Code" |
| 35 | +RUN git config --global credential.helper store |
| 36 | +RUN echo "https://oauth2:${GH_TOKEN}@github.com" > ~/.git-credentials |
| 37 | +RUN gh repo clone RooCodeInc/Roo-Code |
| 38 | +WORKDIR /roo/repos/Roo-Code |
| 39 | +RUN gh repo set-default RooCodeInc/Roo-Code |
| 40 | +RUN pnpm install |
| 41 | + |
| 42 | +# Install dependencies |
| 43 | +WORKDIR /roo |
| 44 | +COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ |
| 45 | +COPY packages/config-eslint/package.json ./packages/config-eslint/ |
| 46 | +COPY packages/config-typescript/package.json ./packages/config-typescript/ |
| 47 | +COPY packages/types/package.json ./packages/types/ |
| 48 | +COPY packages/ipc/package.json ./packages/ipc/ |
| 49 | +COPY apps/roomote/package.json ./apps/roomote/ |
| 50 | + |
| 51 | +COPY scripts/bootstrap.mjs ./scripts/ |
| 52 | +RUN pnpm install |
| 53 | + |
| 54 | +COPY apps/roomote ./apps/roomote/ |
| 55 | +COPY packages/config-eslint ./packages/config-eslint/ |
| 56 | +COPY packages/config-typescript ./packages/config-typescript/ |
| 57 | +COPY packages/types ./packages/types/ |
| 58 | +COPY packages/ipc ./packages/ipc/ |
| 59 | + |
| 60 | +WORKDIR /roo/apps/roomote |
| 61 | +ENV NODE_ENV=production |
| 62 | +CMD ["pnpm", "worker"] |
0 commit comments