# 多阶段构建 FROM node:18-alpine AS base # 安装依赖阶段 FROM base AS deps WORKDIR /app COPY package*.json ./ RUN npm ci --only=production # 构建阶段 FROM base AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build:static # 生产阶段 - 静态文件服务 FROM nginx:alpine AS runner WORKDIR /usr/share/nginx/html # 复制静态文件 COPY --from=builder /app/out . # 复制 nginx 配置 COPY nginx.conf /etc/nginx/nginx.conf # 暴露端口 EXPOSE 80 # 启动 nginx CMD ["nginx", "-g", "daemon off;"]