# 构建阶段 FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/node:18-slim AS builder WORKDIR /app # 复制 package 文件 COPY package*.json ./ COPY yarn.lock ./ # 安装依赖 RUN yarn install --frozen-lockfile # 复制源代码 COPY . . # 构建项目 RUN yarn build # 生产阶段 FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/node:18-slim WORKDIR /app # 使用国内源 RUN npm config set registry https://registry.npmmirror.com # 安装 PM2 和 serve RUN npm install -g pm2 serve # 从构建阶段复制构建产物 COPY --from=builder /app/dist ./dist COPY --from=builder /app/ecosystem.config.js ./ecosystem.config.js # 创建日志目录 RUN mkdir -p logs # 暴露端口 EXPOSE 3000 # 使用 PM2 启动应用 CMD ["pm2-runtime", "start", "ecosystem.config.js"]