FROM node:24-alpine

WORKDIR /app

COPY package.json package-lock.json ./
# 零外部依赖；有依赖时走 npm ci
RUN npm ci --omit=dev 2>/dev/null || npm install --omit=dev

COPY src ./src
COPY config ./config

RUN chown -R node:node /app

EXPOSE 4100
USER node

CMD ["node", "src/server.js"]
