{"id":9904,"date":"2017-09-05T11:25:53","date_gmt":"2017-09-05T11:25:53","guid":{"rendered":"https:\/\/blog.jetbrains.com\/ruby\/?p=7614"},"modified":"2017-12-01T08:19:29","modified_gmt":"2017-12-01T08:19:29","slug":"rubymine-2017-2-3-rc-docker-on-windows-and-debugger","status":"publish","type":"ruby","link":"https:\/\/blog.jetbrains.com\/fr\/ruby\/2017\/09\/rubymine-2017-2-3-rc-docker-on-windows-and-debugger","title":{"rendered":"RubyMine 2017.2.3: Docker Compose on Windows &#038; More on the Debugger"},"content":{"rendered":"<p><strong><em>This post was updated from the v2017.2.3 Release Candidate announcement to the announcement of the stable RubyMine 2017.2.3 release.<\/em><\/strong><\/p>\n<p>Hi everyone,<\/p>\n<p><strong><a href=\"https:\/\/www.jetbrains.com\/ruby\/download\/\" target=\"_blank\" rel=\"noopener\">RubyMine 2017.2.3 (build 172.3968.40)<\/a><\/strong>\u00a0is 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 <a href=\"https:\/\/blog.jetbrains.com\/ruby\/2017\/08\/rubymine-2017-2-3-eap-better-debugger\/\" target=\"_blank\">recent debugger improvements<\/a>.<\/p>\n<h3>Running Docker Compose on Windows<\/h3>\n<p>If you are running Windows, you probably know that support for Docker and Docker Compose, announced in <a href=\"https:\/\/blog.jetbrains.com\/ruby\/2017\/03\/rubymine-2017-1-released-docker-rubocop-puppet-test-generation-for-rails-and-more\/\" target=\"_blank\">v2017.1<\/a> and <a href=\"https:\/\/blog.jetbrains.com\/ruby\/2017\/07\/rubymine-2017-2-released\/\" target=\"_blank\">v2017.2<\/a> respectively, didn\u2019t work for our Windows users because of an <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/RUBY-19765\" target=\"_blank\" rel=\"noopener\">inability<\/a> to configure Docker\/Compose as a remote Ruby interpreter in RubyMine. Today\u2019s update finally fixes this and <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/RUBY?q=Fix%20versions:%20%7B2017.2.3%20RC%7D%20Subsystem:%20Docker\" target=\"_blank\" rel=\"noopener\">other issues<\/a> 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:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-7630 aligncenter\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2017\/09\/ruby-docker_windows.png\" alt=\"docker windows rubymine\" width=\"480\" height=\"214\" \/><br \/>\n<!--more--><\/p>\n<p><em><strong>Refer to <a href=\"https:\/\/blog.jetbrains.com\/ruby\/2017\/05\/rubymine-2017-2-eap-1-docker-compose\/\" target=\"_blank\">this post<\/a> to learn how to setup Docker Compose in RubyMine in detail.<\/strong><\/em><br \/>\n<a name=\"#debugger\"><\/a><\/p>\n<h3>More on the Debugger<\/h3>\n<p><a name=\"#debugger\"><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><a name=\"#debugger\"><\/a><br \/>\nThe <a href=\"https:\/\/blog.jetbrains.com\/ruby\/2017\/08\/rubymine-2017-2-3-eap-better-debugger\/\" target=\"_blank\">previous update<\/a> was devoted to improvements in the debugger with the following most important ones:<\/p>\n<ul>\n<li>Performance issues with the debugger being <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/RUBY-18263\" target=\"_blank\" rel=\"noopener\">slow<\/a> or <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/RUBY-18263\" target=\"_blank\" rel=\"noopener\">freezing<\/a><\/li>\n<li>Debugging and attaching to <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/RUBY-19277\" target=\"_blank\" rel=\"noopener\">Zeus<\/a>, <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/RUBY-15852\" target=\"_blank\" rel=\"noopener\">Passenger<\/a>, <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/RUBY-19369\" target=\"_blank\" rel=\"noopener\">Foreman<\/a> web servers, and any other multi-process applications<\/li>\n<\/ul>\n<p><a name=\"better-performing-debugger\"><\/a><\/p>\n<h4>Better-performing debugger<\/h4>\n<p>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:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-7623\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2017\/09\/ruby-debugger_timeout.gif\" alt=\"ruby debugger timeout\" width=\"1358\" height=\"691\" \/><\/p>\n<p>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 &lt;`?`&gt; instead of actual values for the object skipped.<\/p>\n<p>By the way, the debugger provides a backtrace for each timeout operation, which you can find in the debugger\u2019s Console View if you check <em>Verbose debugger output<\/em> in settings <em>(Preferences \/ Settings | Build, Execution, Deployment | Debugger)<\/em>.<\/p>\n<p>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 <em>Evaluate Expression<\/em>:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-7624\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2017\/09\/ruby-debugger_eval.gif\" alt=\"evaluate expression rubymine\" width=\"1420\" height=\"724\" \/><\/p>\n<p>Finally, if you believe that the new timeout feature doesn\u2019t improve your debugging experience, just uncheck <em>Trace `to_s` evaluation<\/em> <em>(Preferences \/ Settings | Build, Execution, Deployment | Debugger)<\/em>, and the debugger will start tracing every object like before:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-7634\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2017\/09\/ruby-timeout_off_rm.gif\" alt=\"timeout debugger off rubymine\" width=\"1420\" height=\"724\" \/><\/p>\n<h4>Debugging &amp; Attaching to multi-process apps<\/h4>\n<p>Starting with the previous EAP you shouldn\u2019t have any issues debugging multi-process applications like Passenger, Zeus, and Foreman. You can also attach to the local processes of such applications painlessly.<\/p>\n<p>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:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-7626\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2017\/09\/ruby-attach_to_foreman.gif\" alt=\"attach to multi-process app rubymine\" width=\"1256\" height=\"792\" \/><\/p>\n<p><strong><a href=\"https:\/\/www.jetbrains.com\/ruby\/download\/\" target=\"_blank\" rel=\"noopener\">Download<\/a><\/strong> this build from our website, and <strong><em>please let us know in the comments below if the new improvements help address your issues with Docker (for Windows users) and the debugger<\/em><\/strong>.<\/p>\n<p>As usual, you can see the <a href=\"https:\/\/confluence.jetbrains.com\/display\/RUBYDEV\/RubyMine+2017.2\" target=\"_blank\" rel=\"noopener\">release notes<\/a> for the full list of improvements, and use our <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/ruby\" target=\"_blank\" rel=\"noopener\">bug tracker<\/a> to report any issues you encounter.<\/p>\n<p>Cheers!<\/p>\n<p>Your RubyMine Team<\/p>\n","protected":false},"author":574,"featured_media":0,"comment_status":"open","ping_status":"open","template":"","categories":[826,808,89],"tags":[673,632,726,600],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/ruby\/9904"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/ruby"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/ruby"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/574"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=9904"}],"version-history":[{"count":0,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/ruby\/9904\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=9904"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=9904"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=9904"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=9904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}