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

Bha*_*han 6 debugging ruby-on-rails ruby-on-rails-3.2 docker docker-compose

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

Tor*_*cht 5

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

docker-compose stop <my-service-to-debug>
docker-compose run --service-ports <my-service-to-debug> 
Run Code Online (Sandbox Code Playgroud)

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