首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Docker - ruby,nokogiri -安装nokogiri (1.10.2)时出错。

Docker - ruby,nokogiri -安装nokogiri (1.10.2)时出错。
EN

Stack Overflow用户
提问于 2019-04-15 02:33:23
回答 2查看 1.2K关注 0票数 0

使用docker并尝试构建一个映像,但由于nokogiri gem问题,当我捆绑时得到上述错误

我的Docker文件是

代码语言:javascript
复制
RUN apt update
RUN apt install -y ruby
RUN gem install bundler
RUN cd /usr/src/app
WORKDIR /web
ADD Gemfile /web/
RUN bundle

然而,当我在结尾^执行RUN bundle时,我得到了以下错误:

代码语言:javascript
复制
...
Fetching mini_portile2 2.4.0                                                                                                                                              
Installing mini_portile2 2.4.0                                                                                                                                            
Fetching nokogiri 1.10.2                                                                                                                                                  
Installing nokogiri 1.10.2 with native extensions                                                                                                                         
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.                                                                                                        

    current directory: /var/lib/gems/2.5.0/gems/nokogiri-1.10.2/ext/nokogiri                                                                                              
/usr/bin/ruby2.5 -r ./siteconf20190414-8-1rrc2i8.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 /var/lib/gems/2.5.0/gems/nokogiri-1.10.2 for                                                                                           
inspection.                                                                                                                                                               
Results logged to                                                                                                                                                         
/var/lib/gems/2.5.0/extensions/x86_64-linux/2.5.0/nokogiri-1.10.2/gem_make.out                                                                                            

An error occurred while installing nokogiri (1.10.2), and Bundler cannot                                                                                                  
continue.                                                                                                                                                                 
Make sure that `gem install nokogiri -v '1.10.2' --source                                                                                                                 
'http://rubygems.org/'` succeeds before bundling.                                                                                                                         

In Gemfile:                                                                                                                                                               
  capybara was resolved to 3.16.2, which depends on
    xpath was resolved to 3.2.0, which depends on
      nokogiri
The command '/bin/sh -c bundle' returned a non-zero code: 5
EN

回答 2

Stack Overflow用户

发布于 2019-04-15 02:33:23

将以下行添加到Dockerfile,它将处理依赖项

代码语言:javascript
复制
RUN apt install -y build-essential patch ruby-dev zlib1g-dev liblzma-dev

就在RUN bundle命令之前

然后再次运行构建

代码语言:javascript
复制
docker build -t dock .

...
Fetching nokogiri 1.10.2  
Installing nokogiri 1.10.2 with native extensions  
Fetching rack 2.0.7  
Installing rack 2.0.7  
...
Bundle complete! 7 Gemfile dependencies, 33 gems now installed.  
Use `bundle info [gemname]` to see where a bundled gem is installed.  
Removing intermediate container 146ce309d0a5           
 ---> cd36c7c1e577
Successfully built cd36c7c1e577
Successfully tagged dock:latest

..。

感谢https://nokogiri.org/tutorials/installing_nokogiri.html的这一发现。

票数 1
EN

Stack Overflow用户

发布于 2020-11-20 20:25:18

对于高山

代码语言:javascript
复制
RUN set -x \   && apk upgrade --no-cache \    && apk add --no-cache
--virtual build-dependencies \
    build-base \   && apk add --no-cache \
    libxml2-dev \
    libxslt-dev \   && gem install nokogiri \
    -- --use-system-libraries \
    --with-xml2-config=/usr/bin/xml2-config \
    --with-xslt-config=/usr/bin/xslt-config \   && apk del build-dependencies
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55678669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档