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

如何使用VSCode远程调试Heroku预发布环境中的Ruby on Rails应用

调试Heroku上Ruby on Rails应用的VSCode远程调试方案及替代方法

VSCode远程调试具体步骤

  • 步骤1:添加调试依赖
    在Gemfile中临时添加调试依赖(建议仅在预发布环境使用,调试完成后移除):

    group :production do
      gem 'ruby-debug-ide'
      gem 'debase'
    end
    

    执行bundle install后,提交代码到预发布环境的Heroku分支。

  • 步骤2:启动带调试模式的Dyno
    执行命令启动带调试参数的Rails服务器:

    heroku run "bundle exec rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- rails s -p $PORT" -a 你的预发布应用名称
    

    替换你的预发布应用名称为实际应用名,$PORT是Heroku分配的端口,调试端口固定为1234。

  • 步骤3:端口转发到本地
    新开终端执行端口映射命令,将远程dyno的1234端口转发到本地:

    heroku ps:forward 1234 -a 你的预发布应用名称
    
  • 步骤4:配置VSCode调试文件
    在项目.vscode/launch.json中添加以下配置:

    {
      "version": "0.2.0",
      "configurations": [
        {
          "name": "Remote Rails Debug",
          "type": "Ruby",
          "request": "attach",
          "remoteHost": "127.0.0.1",
          "remotePort": 1234,
          "remoteWorkspaceRoot": "/app",
          "cwd": "${workspaceRoot}"
        }
      ]
    }
    

    启动VSCode调试模式后,即可在代码中设置断点,调试Heroku上的Rails应用。

其他实用调试技巧

  • 实时追踪日志
    执行heroku logs --tail -a 你的应用名称实时查看应用日志,配合LOG_LEVEL=DEBUG环境变量,能获取更完整的请求堆栈和调试信息。

  • 远程控制台测试
    用heroku run rails console -a 你的应用名称进入远程Rails控制台,直接模拟请求、测试代码逻辑,快速定位环境差异导致的问题。

  • Dyno终端排查
    通过heroku ps:exec -a 你的应用名称进入dyno的bash终端,可查看文件内容、执行printenv检查环境变量、临时修改配置测试,适合排查路径、配置类问题。

注意事项

  • 调试完成后立即移除调试依赖并重启dyno,禁止在生产环境长期开启调试模式,避免性能损耗和安全风险。
  • 优先在预发布环境调试,确保预发布环境配置与生产环境一致,最大程度复现问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:05:59