# 构建 Vue 静态文件 FROM node:22-alpine AS build WORKDIR /app # Corepack 随 Node 一起提供,用它固定使用项目的 pnpm。 RUN corepack enable COPY package.json pnpm-lock.yaml ./ COPY shared/package.json ./shared/package.json RUN pnpm install --frozen-lockfile COPY . . RUN pnpm test && pnpm build # 运行阶段:仅保留构建产物和 Nginx,不包含源码或 node_modules。 FROM nginx:1.27-alpine COPY nginx/default.conf.template /etc/nginx/templates/default.conf.template COPY --from=build /app/dist /usr/share/nginx/html EXPOSE 80