# syntax=docker/dockerfile:1 # 第一阶段只负责安装锁定依赖并生成 Vite 静态资源,避免把 Node.js 和源码带入运行镜像。 FROM node:22-bookworm-slim AS builder WORKDIR /workspace # 先复制依赖清单以复用 Docker 构建缓存;只有依赖变化时才重新执行 npm ci。 COPY package.json package-lock.json ./ RUN npm ci COPY . . RUN npm run build # 第二阶段使用精简 Nginx 提供静态页面,并把同源 /api 请求转发给后端服务。 FROM nginx:1.29.8-alpine COPY nginx.conf /etc/nginx/conf.d/default.conf COPY --from=builder /workspace/dist /usr/share/nginx/html EXPOSE 80