docker构建错误Gem::Ext::BuildError:错误:无法为mimemagic-0.3.9构建gem本机扩展
我必须在我的本地机器上构建一个 docker 镜像来验证它是否正在构建一个镜像,但是我在本地机器上构建 docker 镜像时遇到了这个问题。
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.
回答
-
修改
Dockerfile安装shared-mime-info包。例如在基于 Debian 的镜像上:RUN apt-get update && apt-get install -y shared-mime-info -
如果它仍然不起作用,那么您可能需要更新
mimemagicgem。在您的主机上,更新mimemagicRails 应用程序的Gemfile/Gemfile.lock。您可能需要先安装shared-mime-info:如果主机是macOS,您可能需要运行brew install shared-mime-info;如果主机是 Ubuntu,您可能需要运行apt-get install shared-mime-info. 然后运行bundle update mimemagic -
如果您
Dockerfile从存储库下载 Rails 应用程序,请先将更改推送到该存储库。或者,为了进行测试,请Dockerfile改为从主机修改Rails 应用程序中的复制。
回答
如果您使用的是 macOS,请尝试以下操作
brew install shared-mime-info
bundle update mimemagic
并尝试捆绑您的 gem 文件
THE END
二维码