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"]