Dockerfile 676 B

1234567891011121314151617181920212223242526272829303132333435
  1. # ---- Stage 1: Build ----
  2. FROM node:20-alpine AS build
  3. # 启用 pnpm
  4. RUN corepack enable
  5. # 使用国内镜像源
  6. RUN pnpm config set registry https://registry.npmmirror.com
  7. WORKDIR /app
  8. # 先复制依赖文件,利用 Docker 层缓存
  9. COPY package.json pnpm-lock.yaml ./
  10. # 安装依赖
  11. RUN pnpm install --frozen-lockfile
  12. # 复制项目源码
  13. COPY . .
  14. # 构建(跳过 vue-tsc 类型检查,只跑 vite build)
  15. RUN npx vite build
  16. # ---- Stage 2: Serve ----
  17. FROM nginx:alpine
  18. # 复制 nginx 配置
  19. COPY nginx.conf /etc/nginx/conf.d/default.conf
  20. # 复制构建产物
  21. COPY --from=build /app/dist /usr/share/nginx/html
  22. EXPOSE 80
  23. CMD ["nginx", "-g", "daemon off;"]