Debian
Gem::Ext::BuildError: 錯誤: 無法建構 gem 原生擴展
我有以下 Dockerfile:
FROM debian:stretch-backports RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ ruby ruby-dev \ curl wget \ gnupg \ git \ ncbi-blast+ zlib1g-dev RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - && \ apt-get update && apt-get install -y --no-install-recommends \ nodejs && \ rm -rf /var/lib/apt/lists/* RUN gem install bundler && \ wget -c https://github.com/wurmlab/sequenceserver/archive/1.1.0.beta12.tar.gz && \ tar xfvz 1.1.0.beta12.tar.gz && \ cd sequenceserver-1.1.0.beta12 && \ npm install && \ bundle instal
這導致了以下錯誤:
... Installing childprocess 1.0.1 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /var/lib/gems/2.3.0/gems/childprocess-1.0.1/ext /usr/bin/ruby2.3 mkrf_conf.rb current directory: /var/lib/gems/2.3.0/gems/childprocess-1.0.1/ext /usr/bin/ruby2.3 -rubygems /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake RUBYARCHDIR=/var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/childprocess-1.0.1 RUBYLIBDIR=/var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/childprocess-1.0.1 /usr/bin/ruby2.3: No such file or directory -- /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake (LoadError) rake failed, exit code 1 Gem files will remain installed in /var/lib/gems/2.3.0/gems/childprocess-1.0.1 for inspection. Results logged to /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/childprocess-1.0.1/gem_make.out An error occurred while installing childprocess (1.0.1), and Bundler cannot continue. Make sure that `gem install childprocess -v '1.0.1' --source 'http://rubygems.org/'` succeeds before bundling. In Gemfile: selenium-webdriver was resolved to 3.142.3, which depends on childprocess
我錯過了什麼?
先感謝您
首先,您的 Dockerfile 末尾有一個錯字,但我認為這來自複制和粘貼。
但是,我通過先安裝 rake 來建構它。所以你的最後一個 Docker 命令應該是:
RUN gem install bundler && \ gem install rake && \ wget -c https://github.com/wurmlab/sequenceserver/archive/1.1.0.beta12.tar.gz && \ tar xfvz 1.1.0.beta12.tar.gz && \ cd sequenceserver-1.1.0.beta12 && \ npm install && \ bundle install