# 多阶段构建:构建阶段 FROM node:18-alpine AS build-stage WORKDIR /app # 设置国内镜像源以加速依赖安装(可选,根据实际情况调整) # RUN npm config set registry https://registry.npmmirror.com # 复制package.json和package-lock.json COPY package*.json ./ # 安装所有依赖(包括开发依赖) RUN npm ci # 复制源代码 COPY . . # 编译TypeScript代码 RUN npm run build # 多阶段构建:运行阶段 FROM node:18-alpine AS production-stage WORKDIR /app # 设置时区(可选,根据需要调整) # RUN apk --no-cache add tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 复制package.json和package-lock.json COPY package*.json ./ # 安装仅生产依赖 RUN npm ci --only=production # 复制编译结果 COPY --from=build-stage /app/dist ./dist # 复制环境变量示例文件(如果存在) COPY .env.example .env # 暴露端口 EXPOSE 3000 # 启动应用 CMD ["node", "dist/index.js"]