Spaces:
Paused
Paused
| FROM node:18-alpine | |
| # 设置工作目录 | |
| WORKDIR /app | |
| # 安装基础工具 | |
| RUN apk add --no-cache curl ca-certificates | |
| # 复制 package 文件 | |
| COPY package*.json ./ | |
| # 安装依赖 | |
| RUN npm install --omit=dev && npm cache clean --force | |
| # 复制源代码 | |
| COPY src/ ./src/ | |
| # 创建非 root 用户 | |
| RUN addgroup -g 1001 -S nodejs && \ | |
| adduser -S nextjs -u 1001 -G nodejs | |
| # 创建必要的目录 | |
| RUN mkdir -p /app/logs && \ | |
| chown -R nextjs:nodejs /app | |
| # 切换到非 root 用户 | |
| USER nextjs | |
| # 暴露端口 | |
| EXPOSE 7860 | |
| # 设置环境变量 | |
| ENV NODE_ENV=production | |
| ENV PORT=7860 | |
| ENV USE_NATIVE_PROXY_POOL=true | |
| ENV ENABLE_PROXY_SERVER=false | |
| # 健康检查 | |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ | |
| CMD curl -f http://localhost:7860/health || exit 1 | |
| # 启动应用 | |
| CMD ["node", "src/lightweight-client-express.js"] | |