Я пытаюсь создать 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