Hi,
I am trying to build an image for my ruby application but every time my build gets to running bundle install
it fails due to an io/console error.
Error seen here:
http://dev.joegrigg.com:8000/error.png
Any ideas?
Share and learn in the Docker community.
Hi,
I am trying to build an image for my ruby application but every time my build gets to running bundle install
it fails due to an io/console error.
Error seen here:
http://dev.joegrigg.com:8000/error.png
Any ideas?
Hi,
Looks like this is a Ruby issue. Can you add gem 'io-console'
to the Gemfile and try again.
Regards
Unfortunately even when I do that I am still getting the exact same error.
Any other ideas?
Hi,
I tried to install io-console
gem in alpine:edge
container from packages found from your docker build log and it complains about not having ruby header files (ruby.h) packages which usually comes with ruby-dev package.
gem install io-console
Fetching: io-console-0.4.2.gem (100%)
Building native extensions. This could take a while...
ERROR: Error installing io-console:
ERROR: Failed to build gem native extension.
/usr/bin/ruby -r ./siteconf20150914-17-1piw7f1.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
extconf failed, exit code 1
Gem files will remain installed in /usr/lib/ruby/gems/2.2.0/gems/io-console-0.4.2 for inspection.
Results logged to /usr/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0/io-console-0.4.2/gem_make.out
And looks like the ruby-dev package corresponding to the ruby version you are installing doesn’t exist in the Alpine repo.
So this is indicates that for your bundler install to work you need ruby development packages. This is a Alpine linux specific issue and not a docker issue.
Regards
Okay thank you for your help
Hi @joeegrigg,
Did you find the solution to your issue ? I’m facing exactly the same one
Thanks
Damien
Any interesting additional information in /usr/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0/io-console-0.4.2/gem_make.out
?
If you apk add --update ruby-dev
does it work?
EDIT: Just saw that’s not working. You might have to follow procedures such as https://github.com/cybercode/alpine-ruby#using-c-based-gems
Personally, my experience using alpine
for Ruby-based apps has not been good, even for simple ones. You definitely should consider whether the disk space vs. ease of use tradeoff of using alpine
vs. something like debian
is worth it for your use case, especially since I’ve found native gem builds of alpine
have tendency to balloon to several hundreds of megabytes in size anyway.