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.
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:
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
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:
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:
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:
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:
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.
Your RubyMine Team