2
0

Dockerfile 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. # 配置国内npm镜像
  16. RUN pnpm config set registry https://registry.npmmirror.com/
  17. RUN pnpm config set @jsr:registry https://npm.jsr.io
  18. # 设置工作目录
  19. WORKDIR /workspace
  20. # 复制根目录配置文件
  21. COPY package.json pnpm-workspace.yaml pnpm-lock.yaml .npmrc ./
  22. # 复制各项目 package.json
  23. COPY web/package.json ./web/
  24. COPY packages/server/package.json ./packages/server/
  25. # 安装依赖
  26. RUN pnpm install --frozen-lockfile
  27. # 复制项目文件
  28. COPY . .
  29. # 设置环境变量
  30. ENV WX_MINI_APP_ID=${WX_MINI_APP_ID}
  31. ENV WX_MINI_APP_SECRET=${WX_MINI_APP_SECRET}
  32. ENV WECHAT_MERCHANT_ID=${WECHAT_MERCHANT_ID}
  33. ENV WECHAT_V3_KEY=${WECHAT_V3_KEY}
  34. ENV WECHAT_PAY_NOTIFY_URL=${WECHAT_PAY_NOTIFY_URL}
  35. ENV WECHAT_PUBLIC_KEY=${WECHAT_PUBLIC_KEY}
  36. ENV WECHAT_PRIVATE_KEY=${WECHAT_PRIVATE_KEY}
  37. ENV WECHAT_MERCHANT_CERT_SERIAL_NO=${WECHAT_MERCHANT_CERT_SERIAL_NO}
  38. ENV WECHAT_PLATFORM_CERT_SERIAL_NO=${WECHAT_PLATFORM_CERT_SERIAL_NO}
  39. # 构建 web 应用
  40. RUN cd web && pnpm run build
  41. # 暴露端口(根据实际需要调整)
  42. EXPOSE 8080
  43. # 启动命令
  44. CMD ["sh", "-c", "cd web && pnpm run start"]