Dockerfile 534 B

1234567891011121314151617181920212223242526272829303132
  1. # ---- Stage 1: Build ----
  2. FROM node:20-alpine AS build
  3. # 启用 pnpm
  4. RUN corepack enable
  5. WORKDIR /app
  6. # 先复制依赖文件,利用 Docker 层缓存
  7. COPY package.json pnpm-lock.yaml ./
  8. # 安装依赖
  9. RUN pnpm install --frozen-lockfile
  10. # 复制项目源码
  11. COPY . .
  12. # 构建
  13. RUN pnpm build
  14. # ---- Stage 2: Serve ----
  15. FROM nginx:alpine
  16. # 复制 nginx 配置
  17. COPY nginx.conf /etc/nginx/conf.d/default.conf
  18. # 复制构建产物
  19. COPY --from=build /app/dist /usr/share/nginx/html
  20. EXPOSE 80
  21. CMD ["nginx", "-g", "daemon off;"]