Dockerfile.web 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. FROM node:20-slim AS base
  2. # Install pnpm
  3. ENV PNPM_HOME="/pnpm"
  4. ENV PATH="$PNPM_HOME:$PATH"
  5. RUN corepack enable
  6. RUN npm install -g npm@latest
  7. RUN npm install -g npm-run-all
  8. # Install system packages
  9. RUN apt update && apt install -y curl git vim jq netcat-openbsd postgresql-client
  10. # Install Docker cli
  11. RUN apt install -y apt-transport-https ca-certificates gnupg lsb-release
  12. RUN curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  13. RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
  14. RUN apt update && apt install -y docker-ce-cli
  15. WORKDIR /roo
  16. # Copy evals
  17. RUN git clone https://github.com/RooCodeInc/Roo-Code-Evals.git evals
  18. WORKDIR /roo/repo
  19. # Install npm packages
  20. RUN mkdir -p \
  21. scripts \
  22. apps/web-evals \
  23. packages/config-eslint \
  24. packages/config-typescript \
  25. packages/evals \
  26. packages/ipc \
  27. packages/types \
  28. packages/cloud
  29. COPY ./package.json ./
  30. COPY ./pnpm-lock.yaml ./
  31. COPY ./pnpm-workspace.yaml ./
  32. COPY ./scripts/bootstrap.mjs ./scripts/
  33. COPY ./apps/web-evals/package.json ./apps/web-evals/
  34. COPY ./packages/config-eslint/package.json ./packages/config-eslint/
  35. COPY ./packages/config-typescript/package.json ./packages/config-typescript/
  36. COPY ./packages/evals/package.json ./packages/evals/
  37. COPY ./packages/ipc/package.json ./packages/ipc/
  38. COPY ./packages/types/package.json ./packages/types/
  39. COPY ./packages/cloud/package.json ./packages/cloud/
  40. RUN pnpm install
  41. # Copy source code
  42. COPY . ./
  43. # Build the web-evals app
  44. RUN pnpm --filter @roo-code/web-evals build
  45. # Copy entrypoint script
  46. COPY packages/evals/.docker/entrypoints/web.sh /usr/local/bin/entrypoint.sh
  47. RUN chmod +x /usr/local/bin/entrypoint.sh
  48. ENV DATABASE_URL=postgresql://postgres:password@db:5432/evals_development
  49. ENV REDIS_URL=redis://redis:6379
  50. EXPOSE 3446
  51. ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]