RubyMine 2017.2 EAP 1: Docker Compose!
Hey all,
Today we are announcing RubyMine 2017.2 EAP 1 (build 172.2273.6), the first update in a series of Early Access Programs for v2017.2 that will be released in the middle of the summer. Here’s what we’ve got for you:
Docker Compose
Docker support was announced in the RubyMine 2017.1 release post, but back then it was missing Docker Compose which many of you expected. Today we are bringing it out! Here’s how you set up Compose in RubyMine:
First, you should have a Docker project running through docker-compose
. In previous releases you also had to install the Docker integration plugin, but now it’s bundled in the IDE, so no additional actions are required.
The next step might be non-obvious because currently RubyMine doesn’t provide any special interface to deal with the Docker environment or the apps running with Docker.
In RubyMine, open a folder containing your Docker project (File | Open). Skip any notifications in RubyMine as you haven’t specified your Docker SDK yet, so at this point the IDE assumes that you are running a local project:
Open your SDK settings (Preferences / Settings | Languages & Frameworks | Ruby SDK and Gems), and add Docker Compose as a new remote interpreter (New remote | Docker Compose):
As you can see, RubyMine locates your Compose file automatically, but you can always manually specify a path to docker-compose.yml
.
Also, don’t forget to choose which Service to run. As I’m adding a plain Compose Rails app, I’ve chosen web
.
When you click OK, the IDE will run and add it to the list of available SDKs. This will probably take a minute. Once done, choose your newly added Docker SDK, and click Apply so that RubyMine starts reindexing your project. Then click OK:
Congrats! Now you can work with your multiple Docker containers like with your local apps, taking advantage of the whole set of RubyMine features from code analysis and editing tools to debugging and testing suites!
One thing to remember: While RubyMine is able to detect any new gems you add to your Gemfile, it would still suggest to install them locally. Instead, when you update your Gemfile with new gems, run docker-compose build
from the terminal (View | Tool windows | Terminal), and re-run your project.
Revert selected commit in Git log
As you may have guessed, Revert is the implementation of git revert
, which allows you to remove any registered changes by adding a new commit. This operation doesn’t change the existing commit history, and is used for public branches:
Just like with Git, the IDE will warn you about conflicts, and won’t let you revert in case you have yet uncommitted changes:
JavaScript improvements
This update features a number of JS improvements coming to RubyMine from WebStorm:
- Parameter hints in TypeScript
- Auto imports in JavaScript
- Completion and auto import for React stateless components
- Code rearrangement for JavaScript and TypeScript
- Completion and auto import for React stateless components
- New code style options for JavaScript and TypeScript
Read more about these updates in the related blog post.
Download this EAP from Confluence.
See the release notes for the full list of improvements, and use our tracker to submit any issues you encounter.
Share your thoughts on this update in the comments below & join us on Slack!
Cheers,
Your RubyMine team
Benjamin Dobell says:
May 25, 2017Why is “Preferences / Settings | Languages & Frameworks | Ruby SDK and Gems” missing from IDEA with the Ruby plugin installed? It’s been that way for quite some time. It’s a pain having to install RubyMine just because those settings are missing.
RubyMine 2017.2 EAP 2: Breadcrumbs for Ruby | RubyMine Blog says:
May 29, 2017[…] 2017.2 EAP 2 (build ) is now released. In the previous EAP you may have noticed a new design for XML and HTML breadcrumbs. This update also brings breadcrumbs […]
RubyMine 2017.2 EAP 5: Debugging with Docker Compose | RubyMine Blog says:
June 20, 2017[…] of a docker-compose service. If you haven’t configured Docker Compose in RubyMine yet, refer to this post and set it up in minutes. Here’s how you can try the […]
Luciano Leveroni says:
July 13, 2017This is an excellent feature! 🙂
However, after trying it out, I encouter a problem. First, version 3 of docker compose seems unsupported. After changing my file to 2.2, error disappeared. But after clicking OK (after selecting Docker Compose as a interpreter), the “docker-compuse up” popup appears but the dialog does not close! So it’s fails to add the configuration remote interpreter 🙁
Tested on RubyMine 2017.2 RC.
Artem Sarkisov says:
July 14, 2017Hi Luciano,
You are right, currently we don’t support Docker Compose version 3; it’s a known issue https://youtrack.jetbrains.com/issue/IDEA-174380
In regard to your second issue: RubyMine needs to run the container in order to take Ruby SDK from it. How long have you been waiting before aborting the action?
Luciano says:
July 14, 2017Hi Artem,
Thanks for the quick reply.
Regarding the second issue, I’ve waited for about a minute without success (from command-line, it takes about 5 secs to get docker compose up). The ‘docker-compose up’ popup disappears also quickly (like in the demo video above). The problem is that I’m left with Configure Remote Ruby Interpreter dialog open. I can close it but no new interpreter is added.
Artem Sarkisov says:
July 14, 2017Luciano,
I’ve probably confused you with the video. It was cut as I can’t attach heavy files to the post. Next time I’ll add some sign showing that an action shown takes time to complete. Sorry about that.
It actually takes about a minute to complete, but probably more in some cases. The popup window can show up a few times during the process. As for Configure Remote Ruby Interpreter dialog, it may also show up a couple of times including the first time without Docker Compose added.
Could you please give it another try, wait for a little more than before, and see it it helps? If it doesn’t, will submit the issue and start the investigation.
Thank you
Luciano says:
July 14, 2017Hi again,
I’ve left it for 5 minutes and nothing happened 🙁
Artem Sarkisov says:
July 17, 2017Hi Luciano,
Then it looks like a bug. We’ve submitted an issue based on your comments, see https://youtrack.jetbrains.com/issue/RUBY-19798. Please add details if any.
Artem Sarkisov says:
July 17, 2017Please also attach info from your about screen to the issue (RubyMine | About)
Luciano Leveroni says:
July 17, 2017Done.
Is there a way I can subscribe to updates to that issue?
Artem Sarkisov says:
July 17, 2017Thank you!
As you are now watching this issue, you will be notified about any changes.
Gustavo Aráujo says:
July 15, 2017Plans for the debug also works in “terminal” mode
Gustavo Aráujo says:
July 15, 2017Ah! I almost forgot. You did a beautiful job. Congratulations. 🙂
RubyMine 2017.2 Released: Docker Compose, RuboCop Quick-fixes, Better Version Control, and more | RubyMine Blog says:
July 18, 2017[…] containers taking advantage of code analysis, completion, and other great IDE features. See the related blog post to learn how to configure Docker Compose for your […]
Jarek says:
July 18, 2017Great that you are adding features around docker – until I can work fully with Docker and RubyMine I’m holding with renewing my subscription.
So I’ve tried 2017.2, and I found the new option in build preferences – macOS which connects to my docker server without a problem. Nice.
But then I’m stuck. I tried docker compose, added all env. vars. then changed ruby interpreter path, selected web service. Clicking OK shows “docker compose up” dialog, and then it disappears and new interpreter is added. It adds correct ruby version so it kind of knows what should be done. It’s just that it doesn’t include any external libs after clicking OK/apply. It shows some dialogs couple of times but ultimately there’s no outcome.
Looking into compose logs I see some weird behaviour. I see that web container is started, some logs appear and it suddenly shuts down with: “web_1 exited with code 0”. Then immediately another container is run, some more logs are showing and it quits again. And that happens couple of times and then, after one more quit, nothing else happens.
It looks like that:
“…
web_1 exited with code 0
bundle_1 exited with code 0
web_1 | 319web_1 exited with code 0
bundle_1 exited with code 0
web_1 | /root/.gem/ruby/2.2.0:/usr/local/lib/ruby/gems/2.2.0:/usr/local/bundle
web_1 exited with code 0
bundle_1 exited with code 0
web_1 | use require ‘rack/cache/entity_store’
web_1 | use require ‘rack/cache/meta_store’
web_1 | warning: parser/current is loading parser/ruby22, which recognizes
web_1 | warning: 2.2.3-compliant syntax, but you are running 2.2.5.
web_1 | warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
web_1 exited with code 1
bundle_1 exited with code 0
web_1 | The git source `git://github.com/codequest-eu/acts_as_commentable_with_threading.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
web_1 | The git source `git://github.com/maclover7/trix.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
web_1 | The git source `git://github.com/codequest-eu/after_party.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
web_1 | Found no changes, using resolution from the lockfile
web_1 | The Gemfile’s dependencies are satisfied
web_1 exited with code 0
bundle_1 exited with code 0
web_1 | The git source `git://github.com/codequest-eu/acts_as_commentable_with_threading.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
web_1 | The git source `git://github.com/maclover7/trix.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
web_1 | The git source `git://github.com/codequest-eu/after_party.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
web_1 | Found no changes, using resolution from the lockfile
web_1 | The Gemfile’s dependencies are satisfied
web_1 exited with code 0
…”
Once, I got to the point where I could see some rake tasks log like:
“…
web_1 | rake db:version
web_1 | environment
web_1 | load_config
web_1 | rake default
web_1 | test
web_1 | rake doc
web_1 | rake doc/api
web_1 | rake doc/api/index.html
…”
But this was interrupted by some SIGTERM – which could be seen in RubyMine logs.
My docker setup is that due to slow files syncing in macOS, I use unison to sync files between containers and host. Then, I use separate bundle container to get the bundle-cache functionality – it maps bundled libs directory to the web container. Not sure what more details I could give you to describe the issue better. Let me know.
I don’t know how to see logs of what RubyMine is doing. Why it starts and closes new containers? It seems like they are closed after they successfully started.
Jarek says:
July 18, 2017I’m still playing with it, and having other containers using the same compose config I tried to use other. Sidekiq one exited with missing Gemfile or .bundle/ directory:
”
sidekiq_1 | Could not locate Gemfile or .bundle/ directory
sidekiq_1 | Bundler::GemfileNotFound: Could not locate Gemfile or .bundle/ directory
sidekiq_1 | /usr/local/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler.rb:174:in `rescue in root’
sidekiq_1 | /usr/local/lib/ruby/gems/2.2.0/gems/bundler-1.13.6/lib/bundler.rb:170:in `root’
…
sidekiq_1 exited with code 10
”
But then it yet again run the container and exit code was different:
”
sidekiq_1 | The git source `git://github.com/codequest-eu/acts_as_commentable_with_threading.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
sidekiq_1 | The git source `git://github.com/maclover7/trix.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
sidekiq_1 | The git source `git://github.com/codequest-eu/after_party.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
sidekiq_1 | Found no changes, using resolution from the lockfile
sidekiq_1 | The Gemfile’s dependencies are satisfied
sidekiq_1 exited with code 0
”
For the first error – not sure why it happens – bundle container is running so the .bundle/ directory should be there, and Gemfile is present as well in the WORKDIR.
Artem Sarkisov says:
July 18, 2017Hi Jarek,
Thank you and sorry for the trouble. I’m passing this on to the dev team, and hopefully will get back to you soon.
Jarek says:
July 18, 2017Hi Artem,
thanks for the quick response and for passing it to the dev team. Maybe it would make things easier if you could tell what commands are run during those mystic “docker compose up” dialogs. It might reveal some dead ends for my case.
Andrey Vokin says:
July 19, 2017You said that you had specified environment variables. Had you changed variable “PATH”?
Jarek says:
July 19, 2017“PATH” is not changed. “BUNDLE_PATH” is changed to point to a directory where bundle cache is mapped to.
Jarek says:
July 19, 2017Please also check my next post, which should be an anwser here – I posted logs.
Jarek says:
July 19, 2017Also – please check this blog post to check how and why we use bundle cache for Rails. It seems to be commonly used. It seems like RubyMine doesn’t know how to deal with this setup.
https://medium.com/@fbzga/how-to-cache-bundle-install-with-docker-7bed453a5800
Andrey Vokin says:
July 20, 2017Thank you, we’ll investigate this case.
Jarek says:
July 20, 2017I changed to Docker / Tools setting and provided exact path to docker-compose and that removed the missing docker-compose error. But it still timeouts on this:
“2017-07-20 21:08:59,331 [117849163] INFO – g.FileBasedIndexProjectHandler – Reindexing refreshed files: 0 to update, calculated in 0ms
2017-07-20 21:08:59,396 [117849228] INFO – .CloudSilentLoggingHandlerImpl – Creating container…
2017-07-20 21:09:07,987 [117857819] INFO – .run.runtime.DockerExecProcess – com.github.dockerjava.api.exception.NotModifiedException: , caused by: com.github.dockerjava.api.exception.NotModifiedException:
2017-07-20 21:09:14,951 [117864783] INFO – .run.runtime.DockerExecProcess – com.github.dockerjava.api.exception.NotModifiedException: , caused by: com.github.dockerjava.api.exception.NotModifiedException:
2017-07-20 21:09:44,395 [117894227] ERROR – tellij.execution.ExecutionMode – Timeout (30 sec) on executing: /usr/local/bin/ruby /opt/project/script/rails generate
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:132)
at com.intellij.execution.ExecutionModes.a(ExecutionModes.java:32)
at com.intellij.execution.ExecutionHelper$4.a(ExecutionHelper.java:464)
at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:343)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2017-07-20 21:09:44,396 [117894228] ERROR – tellij.execution.ExecutionMode – RubyMine 2017.2 Build #RM-172.3317.60
2017-07-20 21:09:44,397 [117894229] ERROR – tellij.execution.ExecutionMode – JDK: 1.8.0_152-release
2017-07-20 21:09:44,397 [117894229] ERROR – tellij.execution.ExecutionMode – VM: OpenJDK 64-Bit Server VM
2017-07-20 21:09:44,397 [117894229] ERROR – tellij.execution.ExecutionMode – Vendor: JetBrains s.r.o
2017-07-20 21:09:44,397 [117894229] ERROR – tellij.execution.ExecutionMode – OS: Mac OS X
2017-07-20 21:09:44,405 [117894237] INFO – ions.generators.GeneratorsUtil – use require ‘rack/cache/entity_store’
use require ‘rack/cache/meta_store’
warning: parser/current is loading parser/ruby22, which recognizes
warning: 2.2.3-compliant syntax, but you are running 2.2.5.
warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
Exit code -1 “
Jarek says:
July 18, 2017Artem,
Sorry for spamming you but I’ve located log files, and this is what they show just after clicking “OK” in the create remote interpreter window and before clicking “OK” in the Properties / SDK window – note the timeout on the `rails generate` task.
Then I added logs that appear once I click “OK” in the SDK window.
2017-07-18 23:45:36,970 [2751804] INFO – ns.plugins.remotesdk.RSyncUtil – rsync version: rsync version 2.6.9 protocol version 29
2017-07-18 23:45:53,578 [2768412] INFO – ns.plugins.remotesdk.RSyncUtil – rsync version: rsync version 2.6.9 protocol version 29
2017-07-18 23:45:55,865 [2770699] INFO – ns.plugins.remotesdk.RSyncUtil – rsync version: rsync version 2.6.9 protocol version 29
2017-07-18 23:46:02,334 [2777168] INFO – se.DockerComposeProjectService – Unable to get Docker Compose version using “docker-compose” executable. Cannot run program “docker-compose”: error=2, No such file or directory
2017-07-18 23:46:02,336 [2777170] INFO – .CloudSilentLoggingHandlerImpl – Creating container…
2017-07-18 23:46:07,228 [2782062] INFO – .run.runtime.DockerExecProcess – com.github.dockerjava.api.exception.NotModifiedException: , caused by: com.github.dockerjava.api.exception.NotModifiedException:
2017-07-18 23:46:07,360 [2782194] INFO – .CloudSilentLoggingHandlerImpl – Creating container…
2017-07-18 23:46:07,635 [2782469] INFO – ns.plugins.remotesdk.RSyncUtil – rsync version: rsync version 2.6.9 protocol version 29
2017-07-18 23:46:12,233 [2787067] INFO – .run.runtime.DockerExecProcess – com.github.dockerjava.api.exception.NotModifiedException: , caused by: com.github.dockerjava.api.exception.NotModifiedException:
2017-07-18 23:46:12,333 [2787167] INFO – yCreateRemoteInterpreterDialog – initializing Remote:ruby-2.2.5-p319: ver.2.2.5p319 ( revision 54774) p319 (docker-compose://[/Users/jarek/Dev/Rails/project/docker-compose.yml]:rubymine/ruby)
2017-07-18 23:46:12,333 [2787167] INFO – yCreateRemoteInterpreterDialog – localGemsBinPath=/Users/jarek/Library/Caches/RubyMine2017.2/ruby_stubs/-696822502/-841764391, remoteGemsBinPath=/usr/local/bin
2017-07-18 23:46:12,397 [2787231] INFO – .CloudSilentLoggingHandlerImpl – Creating container…
2017-07-18 23:46:18,075 [2792909] INFO – yCreateRemoteInterpreterDialog – localPath=/Users/jarek/Library/Caches/RubyMine2017.2/ruby_stubs/-696822502/890085171/bin, remotePath=/root/.gem/ruby/2.2.0/bin
2017-07-18 23:46:18,075 [2792909] INFO – yCreateRemoteInterpreterDialog – localPath=/Users/jarek/Library/Caches/RubyMine2017.2/ruby_stubs/-696822502/890085171/gems, remotePath=/root/.gem/ruby/2.2.0/gems
2017-07-18 23:46:18,075 [2792909] INFO – yCreateRemoteInterpreterDialog – localPath=/Users/jarek/Library/Caches/RubyMine2017.2/ruby_stubs/-696822502/890085171/specifications, remotePath=/root/.gem/ruby/2.2.0/specifications
2017-07-18 23:46:18,075 [2792909] INFO – yCreateRemoteInterpreterDialog – localPath=/Users/jarek/Library/Caches/RubyMine2017.2/ruby_stubs/-696822502/890085171/bundler, remotePath=/root/.gem/ruby/2.2.0/bundler
2017-07-18 23:46:18,075 [2792909] INFO – yCreateRemoteInterpreterDialog – localPath=/Users/jarek/Library/Caches/RubyMine2017.2/ruby_stubs/-696822502/-472251510/bin, remotePath=/usr/local/lib/ruby/gems/2.2.0/bin
2017-07-18 23:46:18,075 [2792909] INFO – yCreateRemoteInterpreterDialog – localPath=/Users/jarek/Library/Caches/RubyMine2017.2/ruby_stubs/-696822502/-472251510/gems, remotePath=/usr/local/lib/ruby/gems/2.2.0/gems
2017-07-18 23:46:18,075 [2792909] INFO – yCreateRemoteInterpreterDialog – localPath=/Users/jarek/Library/Caches/RubyMine2017.2/ruby_stubs/-696822502/-472251510/specifications, remotePath=/usr/local/lib/ruby/gems/2.2.0/specifications
2017-07-18 23:46:18,075 [2792909] INFO – yCreateRemoteInterpreterDialog – localPath=/Users/jarek/Library/Caches/RubyMine2017.2/ruby_stubs/-696822502/-472251510/bundler, remotePath=/usr/local/lib/ruby/gems/2.2.0/bundler
2017-07-18 23:46:18,075 [2792909] INFO – yCreateRemoteInterpreterDialog – localPath=/Users/jarek/Library/Caches/RubyMine2017.2/ruby_stubs/-696822502/1322250864/bin, remotePath=/usr/local/bundle/bin
2017-07-18 23:46:18,075 [2792909] INFO – yCreateRemoteInterpreterDialog – localPath=/Users/jarek/Library/Caches/RubyMine2017.2/ruby_stubs/-696822502/1322250864/gems, remotePath=/usr/local/bundle/gems
2017-07-18 23:46:18,076 [2792910] INFO – yCreateRemoteInterpreterDialog – localPath=/Users/jarek/Library/Caches/RubyMine2017.2/ruby_stubs/-696822502/1322250864/specifications, remotePath=/usr/local/bundle/specifications
2017-07-18 23:46:18,076 [2792910] INFO – yCreateRemoteInterpreterDialog – localPath=/Users/jarek/Library/Caches/RubyMine2017.2/ruby_stubs/-696822502/1322250864/bundler, remotePath=/usr/local/bundle/bundler
2017-07-18 23:46:18,125 [2792959] INFO – .run.runtime.DockerExecProcess – com.github.dockerjava.api.exception.NotModifiedException: , caused by: com.github.dockerjava.api.exception.NotModifiedException:
2017-07-18 23:46:18,135 [2792969] INFO – .CloudSilentLoggingHandlerImpl – Creating container…
2017-07-18 23:46:24,485 [2799319] INFO – yCreateRemoteInterpreterDialog – Remote:ruby-2.2.5-p319: ver.2.2.5p319 ( revision 54774) p319 (docker-compose://[/Users/jarek/Dev/Rails/project/docker-compose.yml]:rubymine/ruby) initialized
2017-07-18 23:46:24,544 [2799378] INFO – pl.ProjectRootManagerComponent – project roots have changed
2017-07-18 23:46:25,000 [2799834] INFO – .diagnostic.PerformanceWatcher – Pushing properties took 71ms; general responsiveness: ok; EDT responsiveness: ok
2017-07-18 23:46:25,012 [2799846] INFO – .diagnostic.PerformanceWatcher – Indexable file iteration took 9ms; general responsiveness: ok; EDT responsiveness: ok
2017-07-18 23:46:25,077 [2799911] INFO – g.FileBasedIndexProjectHandler – Reindexing refreshed files: 0 to update, calculated in 0ms
2017-07-18 23:46:25,140 [2799974] INFO – .CloudSilentLoggingHandlerImpl – Creating container…
2017-07-18 23:46:30,604 [2805438] INFO – .run.runtime.DockerExecProcess – com.github.dockerjava.api.exception.NotModifiedException: , caused by: com.github.dockerjava.api.exception.NotModifiedException:
2017-07-18 23:47:00,087 [2834921] ERROR – tellij.execution.ExecutionMode – Timeout (30 sec) on executing: ruby /Users/jarek/Dev/Rails/project/script/rails generate
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:132)
at com.intellij.execution.ExecutionModes.a(ExecutionModes.java:32)
at com.intellij.execution.ExecutionHelper$4.a(ExecutionHelper.java:464)
at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:343)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2017-07-18 23:47:00,090 [2834924] ERROR – tellij.execution.ExecutionMode – RubyMine 2017.2 Build #RM-172.3317.60
2017-07-18 23:47:00,090 [2834924] ERROR – tellij.execution.ExecutionMode – JDK: 1.8.0_152-release
2017-07-18 23:47:00,091 [2834925] ERROR – tellij.execution.ExecutionMode – VM: OpenJDK 64-Bit Server VM
2017-07-18 23:47:00,091 [2834925] ERROR – tellij.execution.ExecutionMode – Vendor: JetBrains s.r.o
2017-07-18 23:47:00,091 [2834925] ERROR – tellij.execution.ExecutionMode – OS: Mac OS X
2017-07-18 23:47:00,091 [2834925] ERROR – tellij.execution.ExecutionMode – Last Action: EditorLineStart
2017-07-18 23:47:00,093 [2834927] INFO – ions.generators.GeneratorsUtil – use require ‘rack/cache/entity_store’
use require ‘rack/cache/meta_store’
warning: parser/current is loading parser/ruby22, which recognizes
warning: 2.2.3-compliant syntax, but you are running 2.2.5.
warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
Exit code -1
logs that appear once I click “OK” in the SDK window.
2017-07-18 23:54:16,479 [3271313] INFO – se.DockerComposeProjectService – Unable to get Docker Compose version using “docker-compose” executable. Cannot run program “docker-compose”: error=2, No such file or directory
2017-07-18 23:54:16,481 [3271315] INFO – .CloudSilentLoggingHandlerImpl – Creating container…
2017-07-18 23:54:16,982 [3271816] INFO – pl.ProjectRootManagerComponent – project roots have changed
2017-07-18 23:54:17,265 [3272099] INFO – .diagnostic.PerformanceWatcher – Pushing properties took 119ms; general responsiveness: ok; EDT responsiveness: ok
2017-07-18 23:54:17,314 [3272148] INFO – .diagnostic.PerformanceWatcher – Indexable file iteration took 49ms; general responsiveness: ok; EDT responsiveness: ok
2017-07-18 23:54:22,472 [3277306] INFO – .run.runtime.DockerExecProcess – com.github.dockerjava.api.exception.NotModifiedException: , caused by: com.github.dockerjava.api.exception.NotModifiedException:
2017-07-18 23:54:23,652 [3278486] INFO – .CloudSilentLoggingHandlerImpl – Creating container…
2017-07-18 23:54:28,564 [3283398] INFO – .run.runtime.DockerExecProcess – com.github.dockerjava.api.exception.NotModifiedException: , caused by: com.github.dockerjava.api.exception.NotModifiedException:
2017-07-18 23:55:51,032 [3365866] INFO – ns.plugins.remotesdk.RSyncUtil – rsync version: rsync version 2.6.9 protocol version 29
2017-07-18 23:56:18,915 [3393749] INFO – ns.plugins.remotesdk.RSyncUtil – rsync version: rsync version 2.6.9 protocol version 29
Artem Sarkisov says:
July 21, 2017Jarek, sorry for the delay.
We’ve opened a ticket to investigate your issues https://youtrack.jetbrains.com/issue/RUBY-19828
Could you please attach your idea.log to that issue? Please also share your Dockerfile and docker-compose.yml if possible. Thank you!
Payam says:
July 19, 2017Did you mean to say `docker-compose build` in the post instead?
Artem Sarkisov says:
July 19, 2017Yes; fixed that, thank you for pointing that out!
Romanos says:
July 19, 2017Hello there! Thanks for the new feature!
I can’t seem to get past the configuration of the remote ruby path interpreter.
I get a: Can’t create Ruby SDK – Can’t find ruby by provided interpreter path
I’ve tried with plain ruby, host’s and container’s ruby absolute path
/Users/romdim/.rvm/rubies/ruby-2.4.1/bin/ruby and
/usr/local/bin/ruby
Thanks in advance!
Theodoros says:
July 19, 2017I have the same problem. I was looking at the IDE’s log file and there seems to be an invalid environment variable that triggers an exception:
com.intellij.remote.RemoteSdkException: com.github.dockerjava.api.exception.InternalServerErrorException: invalid environment variable: =::=::\
And indeed, when I try to edit the env vars, I see this: http://imgur.com/JdpqJgF
I’m not sure where it inherits this weird variable from. Disabling the checkbox “Include parent environment variables” seems to do the trick.
Romanos says:
July 19, 2017I work on a Mac, so my issue was found from logs:
2017-07-19 17:02:16,733 [18301168] INFO – ntellij.docker.DockerConnector – Unable to load bundled client library files from /Applications/RubyMine.app/Contents/plugins/Docker/lib/Docker.jar/rt
2017-07-19 17:02:16,737 [18301172] INFO – gins.ruby.ruby.sdk.RubySdkType – Unable to get full version
com.intellij.remote.RemoteSdkException: com.github.dockerjava.api.exception.DockerClientException: Enabled TLS verification (DOCKER_TLS_VERIFY=1) but certificate path (DOCKER_CERT_PATH) ‘/Users/romdim/.docker/machine/machines/default’ doesn’t exist.
And the solution was found here:
https://stackoverflow.com/questions/41027346/pycharm-docker-remote-python-interpreter
tl;dr: For MacOs go to Preferences->Build, Execution, Deployment->Docker and choose Docker for Mac if that’s what you’ve installed. Wait for it and proceed as documented in this tutorial!
Cody says:
September 10, 2017That error had been driving me mad for a while now, but disabling the parent environment variables option worked perfectly.
Thanks for the pointer as I’d still be sitting here scratching my head.
Dmitry says:
October 1, 2017I have same error (“invalid environment variable: =::=::\\”) in phpstorm 2017.2.4 when tried to add php interpreter from docker-compose.
Unchecking “include parent environment variables” solve the problem (http://joxi.ru/vAWYMLzu14Xbgm), thanks to @Cody!
Andrey Vokin says:
July 20, 2017What OS do you use?
Romanos says:
July 20, 2017MacOS Sierra. I’ve resolved the issue, have the answer above this.
Stefan Mayer-Popp says:
July 20, 2017I successfully added docker-compose as remote SDK. When i setup the configuration and choose my docker compose file and hit run i get the following error in consolse.
Deploying ‘Compose: docker-compose.yml’…
Failed to deploy ‘Compose: docker-compose.yml’: Cannot run program “docker-compose” (in directory “/Users/stefanmayerpopp/Developer/RubymineProjects/atlassian_bot”): error=2, No such file or directory
Did anyone had a similar error that docker-compose could not be found? I am on macOS Sierra.
—
~/D/d/atlassian_bot_docker >>> which docker-compose
/usr/local/bin/docker-compose
Stefan Mayer-Popp says:
July 20, 2017A possible solution is to open
Preferences -> Build, Execution, Deployment -> Docker -> Tools -> Docker compose executable
I put the entire path to it, like its already present for docker-machine. In my case
/usr/local/bin/docker-compose
Hope it helps someone else too.
Jarek says:
July 20, 2017Stefan – it helped me getting a step further – thanks a lot!
It’s still not working for me though – looking for help in another answer here.
Tomasz Korzeniowski says:
July 24, 2017RubyMine found the docker-compose file. Unfortunately, no gems were downloaded, and I get “No Rails found in SDK” error. Did anyone had a similar error?
Andrey Vokin says:
July 24, 2017Could you provide details? Please file an issue here: https://youtrack.jetbrains.com/newIssue?project=RUBY&clearDraft=true&summary=RubyMine+doesn%27t+download+Ruby+SDK&c=Assignee+andrey.vokin&c=Subsystem+Docker
Lakeida says:
January 27, 2018Yes, I am having this issue right now. Did you ever get it working?
Henrik says:
July 29, 2017Hi, thanks a lot for providing support for docker and docker-compose!
Is there a guide somewhere that includes all the steps necessary for setting this up?
In your video you already have a server named ‘Docker’ – how should this be configured?
Thanks
Artem Sarkisov says:
July 31, 2017Hi Henrik,
There’s actually nothing to be configured as soon as you have opened your Docker project and set up Docker as a remote SDK (these actions are described in this article). You should be able to run the dev server as soon as you have that done.
Could you describe your issues in more detail?
Henrik says:
August 3, 2017I think I’ve sorted it out… The first time I went into the Ruby SDK and Gems setting to add the Docker-compose, the ‘Server’ dropdown was not filled, and I couldn’t complete setup without it. As it turned out it was easy enough to configure just by selecting Unix socket in the ‘New…’ dialog.
Juozas Beniusis says:
August 10, 2017Hi,
Thank you for the support for Docker Compose!
I’ve been trying to add a remote docker compose interpreter, but after I click “OK”, I am shown and error message “java.lang.NullPointerException”.
Haven’t seen any posts of solving this issue, so some help would be highly appreciated!
Andrey Vokin says:
August 11, 2017Juozas, could you send issue https://youtrack.jetbrains.com/newIssue?project=RUBY&clearDraft=true&c=Assignee+andrey.vokin&c=Subsystem+Docker
Please provide idea.log. Also it would be great if it’s possible to share Dockerfile and docker-compose.yml files
RubyMine 2017.2 출시 | JetBrains 코리아 says:
August 16, 2017[…] 그리고 다른 IDE 기능들을 활용하여 여러분의 앱을 실행할 수 있습니다. 관련 블로그 포스트를 참고하여 프로젝트에서 Docker Compose 를 구성하는 방법을 배울 수 […]
RubyMine 2017.2.3 RC: Docker Compose on Windows & More on the Debugger | RubyMine Blog says:
September 5, 2017[…] to this post to learn how to setup Docker Compose in RubyMine in […]
Steven rankin says:
October 27, 2017Any update on docker-compose version 3 support?
Im on RubyMine 2017.2.4:
RubyMine 2017.2.4
Build #RM-172.4155.44, built on September 26, 2017
JRE: 1.8.0_152-release-915-b11 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Mac OS X 10.12.6
Artem Sarkisov says:
October 27, 2017Yup, we’ve just added it, see https://youtrack.jetbrains.com/issue/RUBY-20256
It’ll be available in v2017.3 as soon as it’s released, but you can already try it in the latest EAP https://www.jetbrains.com/ruby/nextversion/
Steven rankin says:
November 30, 2017I downloaded the updated version on RubyMine today. However I get an error when I go to add a new remote ruby interpreter:
“Can’t create ruby SDK
Could not find gems binaries directory”
I’m pretty sure this did not happen in the previous RM version. The path to the Ruby interpreter is: ruby
Was something introduced or is this a new bug?
Thanks
Olga Kuvardina says:
December 1, 2017Hello Steven! Could you please specify what kind of remote SDK you’re trying to add.
Steven rankin says:
December 4, 2017A ruby one, for Docker using the docker instructions
Steven rankin says:
December 4, 2017https://www.jetbrains.com/help/ruby/docker.html
Note that this worked before the latest update, but no longer works. Please confirm
Andrey Babichev says:
December 5, 2017Confirm, that id doesn’t work in RubyMine 2017.3 at my machine after update either.
Error message:
Can’t create Ruby SDK
Could not find gems binaries directory
Olga Kuvardina says:
December 5, 2017Would it be possible to share the Dockerfile and docker-compose.yml (in case you have it) so that we can reproduce it on our side? You can send it to rubymine-support@jetbrains.com.
Steven rankin says:
December 5, 2017will do, thanks
Dmitry Fedyuk says:
January 9, 2018I have found the solution!
«If you are configuring a remote interpreter using rbenv version manager, you have to specify ruby executable located under the directory versions, rather than shims».
https://df.tips/t/326/3
arthur says:
June 1, 2018Would love kubernetes support