Dockerfile 712 B

12345678910111213141516171819202122232425262728293031323334
  1. # 第一阶段:构建阶段
  2. FROM node:22 AS build-stage
  3. # 安装 pnpm
  4. RUN corepack enable && corepack prepare pnpm@latest --activate
  5. WORKDIR /app
  6. # 复制包管理文件
  7. COPY pnpm-lock.yaml .npmrc package.json ./
  8. # 安装依赖(使用 pnpm)
  9. RUN pnpm install --frozen-lockfile --ignore-scripts
  10. # 复制项目文件
  11. COPY . .
  12. # 构建项目
  13. RUN pnpm run build:prod
  14. # 第二阶段:生产阶段
  15. FROM nginx:alpine AS production-stage
  16. # 复制构建好的文件到 nginx
  17. COPY --from=build-stage /app/dist /usr/share/nginx/html/frontend
  18. # 复制自定义 nginx 配置(可选)
  19. COPY nginx.conf /etc/nginx/conf.d/default.conf
  20. # 暴露端口
  21. EXPOSE 80
  22. # 启动 nginx
  23. CMD ["nginx", "-g", "daemon off;"]