首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用pry在docker中调试rails应用?

如何使用pry在docker中调试rails应用?
EN

Stack Overflow用户
提问于 2016-02-04 21:07:25
回答 5查看 22.1K关注 0票数 48

我在开发环境中有一个运行在docker容器中的rails应用程序。

当我尝试通过在代码中的某处放置binding.pry并附加到容器来调试它时,我可以在输出中看到pry提示符,但它不会暂停,我也不能像没有docker容器时那样与它交互。

那么我该如何调试一个容器化的应用呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-05-16 23:05:26

如果您正在使用docker-compose,您可以将这些标志添加到docker-compose.yml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
app:
  tty: true
  stdin_open: true

然后使用docker attach project_app_1附加到您的进程。pry-rails现在在这里工作。确保您的容器上安装了less,以获得最佳的撬动体验。

请参阅https://github.com/docker/compose/issues/423#issuecomment-141995398

票数 75
EN

Stack Overflow用户

发布于 2016-05-11 19:16:07

要使用pry,您必须以不同的方式运行它:

docker-compose run --service-ports web

查看这篇文章以了解更多信息:

http://blog.carbonfive.com/2015/03/17/docker-rails-docker-compose-together-in-your-development-workflow/

票数 33
EN

Stack Overflow用户

发布于 2016-02-04 21:16:13

当我在Passenger中运行窥探时也遇到了同样的问题。尝试将Gemfile中的"pry-rails"更改为gem "pry-remote",这将启动一个dRuby或无依赖项的分布式协议。

当您想要停止执行中的代码时,调用"binding.remote_pry"而不是"binding.pry"

然后在控制台中调用remote-pry即可访问。它应该是一样的。在您的测试环境中,通常的binding.pry就可以正常工作。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35211638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文