Gem::Ext::BuildError: 错误: 无法构建 gem 本机扩展

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

我错过了什么?

先感谢您

答案1

首先,你的 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

相关内容