# Build stage FROM registry.cn-hangzhou.aliyuncs.com/stuuudy/node:18-alpine as builder # Install pnpm RUN npm install -g pnpm # Set working directory WORKDIR /app # Copy package files COPY package.json pnpm-lock.yaml ./ # Install dependencies RUN pnpm install --frozen-lockfile # Copy source code COPY . . # Build application RUN pnpm build # Production stage FROM registry.cn-hangzhou.aliyuncs.com/stuuudy/node:18-alpine # Install PM2 RUN npm install -g pm2 WORKDIR /app # 从构建阶段复制构建产物和必要文件 COPY --from=builder /app/dist ./dist COPY --from=builder /app/package*.json ./ COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/.env ./.env COPY --from=builder /app/ecosystem.config.js ./ # 暴露端口(根据您的应用需要修改) EXPOSE 3000 # 启动应用 CMD ["pm2-runtime", "start", "ecosystem.config.js"]