Reputation: 1198
I have to build a docker image on my local machine to verify whether it is a building an image or not but I am facing this issue while building the docker image on a local machine.
Installing mime magic 0.3.9 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /usr/local/bundle/gems/mimemagic-0.3.9/ext/mimemagic
/usr/local/bin/ruby -I/usr/local/lib/ruby/2.7.0/rubygems -rrubygems
/usr/local/lib/ruby/gems/2.7.0/gems/rake-13.0.1/exe/rake
RUBYARCHDIR\=/usr/local/bundle/extensions/x86_64-linux/2.7.0/mimemagic-0.3.9
RUBYLIBDIR\=/usr/local/bundle/extensions/x86_64-linux/2.7.0/mimemagic-0.3.9
rake aborted!
Could not find MIME type database in the following locations:
["/usr/local/share/mime/packages/freedesktop.org.xml",
"/opt/homebrew/share/mime/packages/freedesktop.org.xml",
"/usr/share/mime/packages/freedesktop.org.xml"]
/usr/local/bundle/gems/mimemagic-0.3.9/ext/mimemagic/Rakefile:25:in `block in
<top (required)>'
Tasks: TOP => default
(See full trace by running task with --trace)
rake failed, exit code 1
Gem files will remain installed in /usr/local/bundle/gems/mimemagic-0.3.9 for
inspection.
Results logged to
/usr/local/bundle/extensions/x86_64-linux/2.7.0/mimemagic-0.3.9/gem_make.out
An error occurred while installing mimemagic (0.3.9), and Bundler cannot
continue.
Make sure that `gem install mimemagic -v '0.3.9' --source
'https://rubygems.org/'` succeeds before bundling.
Upvotes: 12
Views: 10380
Reputation: 446
Modify the Dockerfile
to install the shared-mime-info
package. E.g. on Debian-based images:
RUN apt-get update && apt-get install -y shared-mime-info
If it still won't work, then you may need to update the mimemagic
gem. On your host, update mimemagic
in the Rails app's Gemfile
/Gemfile.lock
. You may need to install shared-mime-info
first: If the host is macOS, you may need to run brew install shared-mime-info
; if the host is Ubuntu, you may need to run apt-get install shared-mime-info
. Then run
bundle update mimemagic
If your Dockerfile
downloads the Rails app from a repo, push your changes to that repo first. Or, for testing, modify the Dockerfile
to copy in the Rails app from the host instead.
Upvotes: 23
Reputation: 1077
If you are using macOS, try the following
brew install shared-mime-info
bundle update mimemagic
And the try to bundle your gem file
Upvotes: 20