# 使用一个现代、轻量的 Node.js 镜像 FROM node:22-alpine3.19 # 设置工作目录 WORKDIR /opt/app # 为非 root 用户设置权限,这是个好习惯 # 注意:HF Spaces 运行时可能会使用自己的 uid/gid,但 chown 在构建时仍然是好的实践 RUN chown -R 1000:1000 /opt/app # 切换到非 root 用户 USER 1000:1000 # 复制依赖定义文件 COPY --chown=1000:1000 package.json package-lock.json ./ # 安装生产环境依赖 # 使用 --omit=dev 替代 --production,这是 npm v7+ 的推荐做法 RUN npm ci --omit=dev # 复制所有应用代码 COPY --chown=1000:1000 . . ENV PORT=7860 EXPOSE 7860 # 启动应用 CMD ["node", "server/server.js"]