Драгоценные камни Ruby с расширениями C не собираются в Ubuntu - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь создать Dockerfile из нового образа Heroku heroku/heroku:18 (который использует Ubuntu 18.04) и сталкиваюсь с некоторыми проблемами, которых у меня не было в их очень старом heroku/cedar:14 базовом образе, я полагаюиз-за того, что они имеют различных предустановленных пакетов .(Я обновил базовое изображение до heroku/heroku:18, потому что я хочу использовать драгоценный камень webpacker, а в Cedar-14 я получил: Webpacker requires Node.js >= 6.0.0 and you are using 0.10.25. Если есть простой способчтобы установить более новый Node в старом базовом образе, я бы хотел его услышать!)

Моя проблема в том, что нет никаких драгоценных камней с расширениями C (такими как puma, pg, msgpack и т. д.и т. д.) успешно установить с этим новым базовым образом Docker.Сообщения об ошибках варьируются от камня к камню, но все обычно говорят:

The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.

Различные проблемы GitHub с похожими проблемами заставили меня попробовать:

  • apt-get install ing:
    • build-essential
    • libpq-dev
    • libssl-dev
    • openssl
    • libssl1.0-dev
    • gcc
    • gcc-5
    • automake
    • make
  • Использование heroku/heroku:18-build вместо heroku/heroku:18

Ни одно из этих решений не решает проблему.

Для справки, вот соответствующие части моего Dockerfile:

FROM heroku/heroku:18

RUN apt-get update && apt-get install -y nodejs --no-recommends

RUN (mkdir -p /ruby && cd /ruby && curl https://s3-external-1.amazonaws.com/heroku-buildpack-ruby/heroku-18/ruby-2.5.0.tgz -s -o - | tar xzf - --no-same-owner)

ENV GEM_HOME=/ruby/gems GEM_PATH=/ruby/gems

RUN gem install bundler

RUN bundle install
...