You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何排查Digital Ocean上React应用启动-终止循环问题?

排查Digital Ocean部署React应用启动超时循环问题
  • 修正启动命令为生产环境适配
    React默认的npm start是启动开发服务器(react-scripts start),该服务仅用于开发场景,不适合生产部署,且可能因平台环境限制异常退出。

    1. 安装静态文件服务依赖:npm install --save-dev serve
    2. 在package.json中添加生产启动命令:
      "scripts": {
        "start": "react-scripts start",
        "build": "react-scripts build",
        "start:prod": "serve -s build -l $PORT"
      }
      
    3. 修改Procfile内容为:web: npm run start:prod
  • 确认端口使用规则
    Digital Ocean App Platform会动态分配端口,禁止硬编码3000这类固定端口。必须使用平台提供的PORT环境变量,上述serve命令中的$PORT会自动读取该变量;如果是自定义启动脚本,确保代码中用process.env.PORT获取端口。

  • 获取更详细的运行时日志

    1. 用doctl实时追踪日志:doctl app logs <你的应用ID> --follow,启动过程中的隐性错误可能会在此输出
    2. 修改启动命令强制输出完整日志:将Procfile改为web: npm run start:prod 2>&1,把标准错误重定向到标准输出,避免日志丢失
  • 检查构建产物完整性
    通过doctl进入应用容器验证构建结果:

    doctl app exec <你的应用ID> ls -la build
    

    确认build文件夹存在且包含index.html、static等必要文件,若缺失需排查构建过程中的隐藏错误。

  • 验证环境变量配置
    确保生产环境的必要环境变量已配置(如REACT_APP_*开头的自定义变量),且NODE_ENV被设置为production。开发服务器在NODE_ENV=production环境下会主动退出,这可能是启动后立即终止的原因。

  • 直接在平台配置启动命令
    暂时移除Procfile,在Digital Ocean App Platform的应用设置中找到"Command"选项,直接填入npm run start:prod,规避Procfile解析可能出现的问题。

内容的提问来源于stack exchange,提问作者trapezeMaster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 09:04:52