# 生产运行镜像:仅安装生产依赖,不携带测试与开发工具 FROM node:22-alpine WORKDIR /app # 先复制清单以利用镜像层缓存 COPY package.json package-lock.json ./ # 仅安装生产依赖 RUN npm ci --omit=dev && npm cache clean --force # 复制运行时源码与静态资源 COPY src ./src COPY public ./public # 数据目录(容器内),由外部卷挂载持久化 RUN mkdir -p /app/data/configs ENV NODE_ENV=production ENV PORT=3000 EXPOSE 3000 CMD ["node", "src/server.js"]