如何使用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
相关产品推荐
相关产品推荐

