# 生产运行镜像：仅安装生产依赖，不携带测试与开发工具
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"]