如何在Docker上设置ruby - 得到nokogiri错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Docker上设置ruby - 得到nokogiri错误相关的知识,希望对你有一定的参考价值。
我的Doc Dockerfile有FROM Ubuntu:18.04
我想用ruby,所以我做了
gem install bundler
但是,当我尝试
bundle
我和nokogiri有错误
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-288-1mfprtc.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.
答案
你有一个名为nokogiri
的依赖项,它有外部依赖,通常是libxml和libxslt。
你需要做的就是apt get install libxml2-dev libxslt1-dev
这是一个Ruby Dockerfile
的工作示例
FROM ruby:2.6.2
RUN apt-get update -qq && apt-get install -y build-essential
RUN apt-get install -y libxml2-dev libxslt1-dev
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY Gemfile* /usr/src/app/
RUN bundle install -j3
ADD . /usr/src/app
ENTRYPOINT ["bundle", "exec"]
CMD ["rails", "server"]
以上是关于如何在Docker上设置ruby - 得到nokogiri错误的主要内容,如果未能解决你的问题,请参考以下文章
[翻译][Ruby教程]Nokogiri - 解析HTML/XML文档 / Parsing an HTML/XML Document
使用 Docker 镜像运行 bundle install 会忽略 bundle config 设置