如何调试在docker容器内运行的rails应用程序

时间:2015-07-02 11:38:39

标签: ruby-on-rails debugging ruby-on-rails-3.2 docker docker-compose

我正在尝试在使用docker的rails应用程序中执行调试器。我们的应用程序服务器在Ubuntu终端中执行: docker-compose up 。我没有找到运行调试器的方法。我们不能使用rails s --debugger。调试与docker集成的rails应用程序的方法是什么?当我将调试器保存在应用程序文件中时,我们在控制台中输出: {*****调试器已请求,但不可用(确保ruby-debug在Gemfile中列出/安装为gem):使用--debugger启动服务器以启用***** }

1 个答案:

答案 0 :(得分:5)

我不知道红宝石或铁轨,但这是一般的问题"与docker-compose up。在这种情况下,代码执行不会在正在运行的容器中停止,而是在遇到调试器的某个点时失败。您需要在前台运行该服务:

docker-compose stop <my-service-to-debug>
docker-compose run --service-ports <my-service-to-debug> 

一旦您的代码到达该点,这将使您进入调试器。这里的重要部分是--service-ports标志,它确保您在docker-compose.yml文件中指定的相同端口公开。如果您不想重新启动任何链接的容器,也可以使用--no-deps标记。