Remote SDK with Docker Compose and Docker For Windows doesn't appear to work

Hello,

 

I have Docker for Windows installed (the one that uses Hyper-V) along with RubyMine 2017.3. I'm attempting to add a remote SDK by following this documentation: https://www.jetbrains.com/help/ruby/using-docker-compose-as-a-remote-interpreter-2.html

It suggests that Docker for Windows will work.

However, when attempting to run through the process, the rubymine helper container never actually starts on its own. If I start it manually, Rubymine doesn't detect that it has run, so Rubymine freezes and must be killed via Task manager.

If I follow similar steps but use Docker Toolbox (so the version that uses Virtualbox), the process will complete and the remote SDK gets added.

 

Is this setup currently intended to work or is the documentation incorrect?

12 comments

Please attach all logs (Help| Show Log in ...) and could you please attach the screenshot of Configure Remote Ruby Interpreter dialog where you specify Docker-compose settings. Aldo will be very useful to see Dockerfile and docker-compose.yml.

0

I'm not sure how helpful the logs will be here. I started it up again and let it sit for a few minutes and this is what I got

 

https://www.dropbox.com/s/rqevb2maago3s4u/rubymine.zip?dl=0

 

Included in the zip are the log files, a screenshot of Rubymine (in its frozen state) and Kitematic (showing the containers doing nothing), a screenshot of "docker ps -a --no-trunc", my Dockerfile, and my docker-compose.yml file.

 

Edit:

I've performed the same process on another Windows 10 Pro machine I have and it's the same result.

I also tried pointing Rubymine at a local copy of Docker Compose 1.11.2 to see if I could get it to stop trying to run compose from a docker container. That didn't work either, as it still used the container version of compose, but the logs didn't complain about the version of docker compose explicitly like it does if you leave Rubymine pointed at the docker compose version installed with Docker for Windows CE

0

Hello Robert,

sorry for the delay. We've released RubyMine 2017.3.1. Could you please check how it goes there in case you remove remote SDK + all docker settings in RubyMine and re-add them.

 

0

Hello,

I upgraded, removed all Docker configuration and re-added it all. There was no change in functionality. It did exactly as described before.

0

Hello Robert,

 

Thanks for your answers and helping with investigation. According your docker-compose.yml and Dockerfile the configuration is very simple and should work. So perhaps the reason is in the Docker Settings. Could you please send me the version of Docker and docker-compose.  I.e. I have this Docker Toolbox(see screenshot) and I'm able to add sdk from container, run and debug processes with Docker sdk.

0

 

I'd like to reiterate that if I use Docker Toolbox (which uses Virtualbox instead of Windows 10 Pro's Hyper-V), the setup works. However, that requires me to turn off Hyper-V.

0

Thanks for the answer. 

Could you please confirm that in the command line you are able to use Docker with Hyper-V? I.e. Is it possible to run in the application folder in the cmd `docker-compose up`? 

0

Running docker-compose up works perfectly fine.

0

It doesn't appear to matter what version of Compose I have as Rubymine always downloads a docker image of compose tagged 1.11.2 and uses that.

0

Same issue here. Using docker as remote sdk simply hangs.

0

Hello,

it's hard to say what exactly is causing the problem so could you please try 2018.1 Beta with verbose docker logging (which can be enabled via Help | Find Action | Registry | ruby.docker.verbose.logging)

0

Olga and others,

 

2018.1 does work, so whatever you updated in that version of the plugin is correct.

 

The only caveat is that you do need to have the container image built for your project for it to work, otherwise you get a message about not being able to determine the ruby version. After I figured that out, I was able to add a remote SDK with no issues.

 

0

Please sign in to leave a comment.