Multiple debugger processes with docker-compose

Hi I have application which runs rails and sidekiq worker processes as a 2 processes as part of server deployment. I configured docker compose file with 2 services in it. but i could not able to start 2 debug modes at once even I condifured separated Ruby remote sdk using docker compose still not able to get it working. It fails with port 26168 is already allocated for other process. is there any way we can specify remote docker debug port while using debug option using docker-compose.

api_web_rails this is my already running debug mode. and I am trying to start debug_workers. which is sidekiq job

2 comments

Hello,

sorry for such late response. This is expected behaviour since RubyMine doesn't support debug for two Docker processes at the same time. I've filed a new issue: https://youtrack.jetbrains.com/issue/RUBY-20874.

By the way, do you really need to debug both processes at the same time? I.e. is it possible run one process in debug mode and other in normal run?

0

I need this functionality as well.  The main issue is that we can only override the default ports 1234:1234 and 26166:26168 under the "Ruby remote debug" custom configuration, but not under the "Rails" custom configuration.  See: https://stackoverflow.com/a/46920856/539149

I've tried starting Docker Compose remotely, even copying and pasting the line from my Rails custom development configuration into Terminal.app.  Docker Compose starts, but no matter what I try, I can't get the Ruby remote debug debugger to connect to the remote server (even with the same settings).  I just get:

Error running 'Development: web': Failed to find free socket port for process dispatcher

Which makes no sense, because Ruby remote debug shouldn't be trying to open a port.  It should just try to connect to the remote port (which should already be open by Docker Compose).

So this is the part that needs to be fixed, before running multiple instances of the debugger is even addressed.

My current project has half a dozen Docker containers that call each other's APIs, so it's impossible for me to step through the code if I can only debug one container at a time.

0

Please sign in to leave a comment.