# 构建阶段 FROM registry-vpc.cn-chengdu.aliyuncs.com/zhixueli-prod/node:18.20.3 AS builder # 设置工作目录 WORKDIR /app # 设置 npm 镜像源 RUN npm config set registry https://registry.npmmirror.com/ RUN npm config set fetch-retries 3 RUN npm config set fetch-retry-mintimeout 5000 RUN npm config set fetch-retry-maxtimeout 60000 # 安装pnpm RUN npm install -g pnpm@10.16.1 # 复制 package.json COPY package.json pnpm-lock.yaml ./ # 设置 pnpm 下载源 RUN pnpm config set registry https://registry.npmmirror.com/ # 安装依赖 RUN pnpm install --frozen-lockfile --fetch-timeout 300000 # 复制源代码 COPY . . # 构建项目 RUN npm run build:admin # 部署阶段 FROM registry-vpc.cn-chengdu.aliyuncs.com/zhixueli-prod/nginx:alpine # 复制构建产物到 Nginx 目录 COPY --from=builder --chown=nginx:nginx /app/dist-admin /usr/share/nginx/html # 复制 Nginx 配置 COPY Dockerfiles/Dockerfile-admin/default.conf /etc/nginx/conf.d/default.conf # 暴露端口 EXPOSE 80 # 启动 Nginx CMD ["nginx", "-g", "daemon off;"]