Dockerfile 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # 使用指定基础镜像
  2. # 使用指定基础镜像
  3. FROM docker.1ms.run/node:20.19.4-bookworm
  4. # 直接修改apt配置,完全跳过所有验证
  5. RUN echo 'APT::Get::AllowUnauthenticated "true";' > /etc/apt/apt.conf.d/99unauthenticated
  6. # 设置软件源
  7. RUN echo "deb [trusted=yes] http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main" > /etc/apt/sources.list && \
  8. echo "deb [trusted=yes] http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main" >> /etc/apt/sources.list && \
  9. echo "deb [trusted=yes] http://mirrors.tuna.tsinghua.edu.cn/debian-security/ bookworm-security main" >> /etc/apt/sources.list
  10. # 现在应该可以正常工作了
  11. RUN apt update --fix-missing && \
  12. apt install -y curl wget
  13. # 安装 pnpm
  14. RUN npm install -g pnpm
  15. # 配置国内npm镜像
  16. RUN pnpm config set registry https://registry.npmmirror.com/
  17. RUN pnpm config set @jsr:registry https://npm.jsr.io
  18. # 添加PostgreSQL 17的官方仓库
  19. RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \
  20. echo "deb http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main" > /etc/apt/sources.list.d/pgdg.list
  21. # 更新包列表并安装PostgreSQL 17客户端工具
  22. RUN apt update && \
  23. apt install -y postgresql-client-17
  24. # 确认版本
  25. RUN pg_dump --version
  26. # 设置工作目录
  27. WORKDIR /workspace
  28. # 设置备份目录环境变量
  29. ENV BACKUP_DIR=/app/backups-prd/
  30. # 复制根目录配置文件
  31. COPY package.json pnpm-workspace.yaml pnpm-lock.yaml ./
  32. # 复制各项目 package.json
  33. COPY web/package.json ./web/
  34. COPY packages/ ./packages/
  35. # 安装依赖
  36. RUN pnpm install --frozen-lockfile
  37. # 复制项目文件
  38. COPY . .
  39. # 构建 web 应用
  40. RUN cd web && pnpm run build
  41. # 暴露端口(根据实际需要调整)
  42. EXPOSE 8080
  43. # 启动命令
  44. CMD ["sh", "-c", "cd web && pnpm run start"]