Joe
Joe

Reputation: 293

Optimal way to install ruby on Docker where base-OS access is required?

I'm trying to install Ruby on Docker (no Rails), but I'm having some issues. I initially tried with RVM, but I had issues with it; after I'd installed it in the usual way, commands such as ruby or gem install aren't recognised, and I understand that RVM is not best practice for a docker environment. I tried building from binary, but that seemed to be missing so many essential things, it seemed to be an exercise in futility.

I've now tried using the official docker ruby:2.5.1 image, however when I attach to this, I get an irb prompt, and am unable to use operating system commands, such as apt-get due to this.

It's essential that I have operating system access - this script will be using a browser through headless Watir webdriver, attaching to Geckodriver, so there are a number of dependencies required that won't be included in the base ruby install.

What's the best way to handle this with Docker?

Upvotes: 0

Views: 100

Answers (2)

mahemoff
mahemoff

Reputation: 46369

This will get you on the command-line of the Ruby box:

docker run -it ruby:2.5.1 bash

You'll now be able to run ruby tools as normal, e.g. ruby, irb, gem. As well as regular Debian commands including apt-get.

Upvotes: 3

Mark
Mark

Reputation: 6394

Suggestion:

If you want to roam around inside a separated environment, you should choose something like Vagrant.

If you are intended to use docker, give a try this approach.
You can place any code in your ruby file whichever you would like to.

$ docker run -it -v $(pwd)/:/data ruby:2.5 ruby -- /data/hello.rb
  hello world!

Upvotes: 2

Related Questions