#################### # 公共基础阶段 #################### FROM node:22.17.0 AS base WORKDIR /app ENV PNPM_SKIP_PROMPT=true ENV CI=true RUN corepack enable && corepack prepare pnpm@10.10.0 --activate COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ # RUN pnpm install --frozen-lockfile # 拷贝项目 COPY . . #RUN pnpm i # 安装 pnpm #RUN corepack enable && corepack prepare pnpm@latest --activate # ## 清理依赖缓存 #RUN pnpm store prune && rm -rf $(pnpm store path) && \ # rm -rf node_modules .npmrc package-lock.json pnpm-lock.yaml .pnpm-store .turbo && \ # find . -name 'node_modules' -type d -prune -exec rm -rf '{}' + # ##RUN pnpm run clean # ## 安装依赖 ##RUN pnpm install --force #################### # 开发阶段 #################### # 默认启动 dev server FROM base AS dev # 暴露端口(根据需要) EXPOSE 5678 #CMD ["tail", "-f", "/dev/null"] # 启动开发服务器 CMD ["npm", "run", "dev:antd"] # --- 构建阶段 --- FROM base AS build # 构建生产版本 RUN npm run build:antd # --- 生产阶段 --- FROM nginx:1.25-alpine AS prod # 删除默认配置 RUN rm -rf /usr/share/nginx/html/* # 从构建阶段拷贝打包产物到 nginx html 目录 COPY --from=build /app/apps/web-antd/dist /usr/share/nginx/html # 如果有需要,也可以拷贝自定义 nginx 配置 COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 5268 # 默认启动 nginx CMD ["nginx", "-g", "daemon off;"]