RubyMine 2017.2.3: Docker Compose on Windows & More on the Debugger

This post was updated from the v2017.2.3 Release Candidate announcement to the announcement of the stable RubyMine 2017.2.3 release.

Hi everyone,

RubyMine 2017.2.3 (build 172.3968.40) is available. The highlight of this build is the ability to now work with Docker and Docker Compose on Windows. Additionally, in this post we will share more details on the recent debugger improvements.

Running Docker Compose on Windows

If you are running Windows, you probably know that support for Docker and Docker Compose, announced in v2017.1 and v2017.2 respectively, didn’t work for our Windows users because of an inability to configure Docker/Compose as a remote Ruby interpreter in RubyMine. Today’s update finally fixes this and other issues related to the Docker integration on Windows. In short, you should now be able to configure Docker/Compose on Windows the same way as shown below:

docker windows rubymine

Refer to this post to learn how to setup Docker Compose in RubyMine in detail.

More on the Debugger

The previous update was devoted to improvements in the debugger with the following most important ones:

  • Performance issues with the debugger being slow or freezing
  • Debugging and attaching to Zeus, Passenger, Foreman web servers, and any other multi-process applications

Better-performing debugger

Previously, costly operations were slowing the debugger down while stepping during the debugging session. But in the previous release we added a way to detect such operations and provide a timeout message instead. Take a look at the example below:

ruby debugger timeout

As you can see, instead of evaluating expressions the debugger threw a timeout message, saving you time during debugging. Inline debugging, in this case, shows <?> instead of actual values for the object skipped.

By the way, the debugger provides a backtrace for each timeout operation, which you can find in the debugger’s Console View if you check Verbose debugger output in settings (Preferences / Settings | Build, Execution, Deployment | Debugger).

What if you want to know what a specific variable is equal to despite its heaviness, but get a timeout message instead? In this case, you can simply evaluate that code fragment with the Evaluate Expression:

evaluate expression rubymine

Finally, if you believe that the new timeout feature doesn’t improve your debugging experience, just uncheck Trace to_s evaluation (Preferences / Settings | Build, Execution, Deployment | Debugger), and the debugger will start tracing every object like before:

timeout debugger off rubymine

Debugging & Attaching to multi-process apps

Starting with the previous EAP you shouldn’t have any issues debugging multi-process applications like Passenger, Zeus, and Foreman. You can also attach to the local processes of such applications painlessly.

For example, if you want to debug your Rails app running as a sub-process of a currently running Foreman webserver, you can just attach to Foreman, and RubyMine will also attach to the Rails app, or any other existing sub-process:

attach to multi-process app rubymine

Download this build from our website, and please let us know in the comments below if the new improvements help address your issues with Docker (for Windows users) and the debugger.

As usual, you can see the release notes for the full list of improvements, and use our bug tracker to report any issues you encounter.


Your RubyMine Team

This entry was posted in Announcement, Feature, WhatsMining and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *