Dockerfile 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # 使用指定基础镜像
  2. FROM docker.1ms.run/node:20.19.4
  3. # 定义构建参数
  4. ARG WX_MINI_APP_ID
  5. ARG WX_MINI_APP_SECRET
  6. ARG WECHAT_MERCHANT_ID
  7. ARG WECHAT_V3_KEY
  8. ARG WECHAT_PAY_NOTIFY_URL
  9. ARG WECHAT_PUBLIC_KEY
  10. ARG WECHAT_PRIVATE_KEY
  11. ARG WECHAT_MERCHANT_CERT_SERIAL_NO
  12. ARG WECHAT_PLATFORM_CERT_SERIAL_NO
  13. # 安装 pnpm
  14. RUN npm install -g pnpm@10.18.3
  15. # 设置工作目录
  16. WORKDIR /app
  17. # 复制根目录配置文件
  18. COPY package.json pnpm-workspace.yaml .npmrc ./
  19. # 复制各项目 package.json
  20. COPY web/package.json ./web/
  21. COPY packages/server/package.json ./packages/server/
  22. # 安装依赖
  23. RUN pnpm install --frozen-lockfile
  24. # 复制项目文件
  25. COPY . .
  26. # 设置环境变量
  27. ENV WX_MINI_APP_ID=${WX_MINI_APP_ID}
  28. ENV WX_MINI_APP_SECRET=${WX_MINI_APP_SECRET}
  29. ENV WECHAT_MERCHANT_ID=${WECHAT_MERCHANT_ID}
  30. ENV WECHAT_V3_KEY=${WECHAT_V3_KEY}
  31. ENV WECHAT_PAY_NOTIFY_URL=${WECHAT_PAY_NOTIFY_URL}
  32. ENV WECHAT_PUBLIC_KEY=${WECHAT_PUBLIC_KEY}
  33. ENV WECHAT_PRIVATE_KEY=${WECHAT_PRIVATE_KEY}
  34. ENV WECHAT_MERCHANT_CERT_SERIAL_NO=${WECHAT_MERCHANT_CERT_SERIAL_NO}
  35. ENV WECHAT_PLATFORM_CERT_SERIAL_NO=${WECHAT_PLATFORM_CERT_SERIAL_NO}
  36. # 构建 web 应用
  37. RUN cd web && pnpm run build
  38. # 暴露端口(根据实际需要调整)
  39. EXPOSE 8080
  40. # 启动命令
  41. CMD ["sh", "-c", "cd web && pnpm run start"]