Ошибка установки пакета в образе ruby ​​docker - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь создать образ докера, используя приложение ruby, используя файл докера:

FROM jruby:latest 

# Install apt based dependencies required to run Rails as 
# well as RubyGems. As the Ruby image itself is based on a 
# Debian image, we use apt-get to install those.
RUN apt-get update && apt-get install -y \ 
  build-essential \ 
  nodejs \
  git \
  ruby-dev \
  gcc \
  libffi-dev \
  make \
  zlib1g-dev \
  libssl-dev \
  libreadline6-dev \
  libyaml-dev

# Configure the main working directory. This is the base 
# directory used in any further RUN, COPY, and ENTRYPOINT 
# commands.
RUN mkdir -p /app 
WORKDIR /app

# Copy the Gemfile as well as the Gemfile.lock and install 
# the RubyGems. This is a separate step so the dependencies 
# will be cached unless changes to one of those two files 
# are made.
COPY Gemfile Gemfile.lock ./ 
RUN gem install bundler && bundle install --jobs 20 --retry 5

# Copy the main application.
COPY . ./

# Expose port 3000 to the Docker host, so we can access it 
# from the outside.
EXPOSE 3000

, но я получаю сообщение об ошибке, когда пытаюсь создать этот образ докера

gem install RedCloth выдает ошибку, говорящую о том, что мне сначала нужно установить инструменты разработки.

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /usr/local/bundle/gems/RedCloth-4.3.2/ext/redcloth_scan
/opt/jruby/bin/jruby -r ./siteconf20181127-31-1zsapr.rb extconf.rb
checking for main() in -lc... RuntimeError: The compiler failed to generate an
executable file.
You have to install development tools first.

Как это исправить?

1 Ответ

0 голосов
/ 27 ноября 2018

у jruby часто проблемы с собственными расширениями .В этом случае redcloth gem используется для предоставления предварительно скомпилированных двоичных файлов для jruby, но начиная с версии 4.3 (версия, которую вы пытаетесь установить) они больше не доступны:

Предварительно скомпилированные бинарные гемы предоставляются для платформ JRuby и Win32 до версии 4.3.

Согласно README , вы должны иметь возможность запустить rake compile для сборки двоичных файлов.Это может быть много дополнительной работы в вашем образе Docker, чтобы сделать работу, поэтому я бы порекомендовал попробовать более старую версию redcloth, которая имеет двоичные файлы, которые вам нужны в первую очередь.(имейте в виду, что серия 4.2 была выпущена в 2011 году и может не обладать необходимой вам функциональностью)

...