Эта версия Ruby недоступна на Heroku-18 - PullRequest
0 голосов
/ 19 июня 2019

Когда я пытаюсь построить свое приложение на Heroku, оно терпит неудачу, потому что якобы используемая версия Ruby не поддерживается Heroku. Мое приложение не имеет проблем со сборкой / развертыванием локально. Вот полный журнал сообщений:



-----> Ruby app detected

-----> Compiling Ruby/Rails

       Command: 'set -o pipefail; curl -L --fail --retry 5 --retry-delay 1 --connect-timeout 3 --max-time 30 https://s3-external-1.amazonaws.com/heroku-buildpack-ruby/heroku-18/ruby-2.3.8.tgz -s -o - | tar zxf - ' failed on attempt 1 of 3.

       Command: 'set -o pipefail; curl -L --fail --retry 5 --retry-delay 1 --connect-timeout 3 --max-time 30 https://s3-external-1.amazonaws.com/heroku-buildpack-ruby/heroku-18/ruby-2.3.8.tgz -s -o - | tar zxf - ' failed on attempt 2 of 3.

 !

 !     An error occurred while installing ruby-2.3.8

 !     

 !     This version of Ruby is not available on Heroku-18. The minimum supported version

 !     of Ruby on the Heroku-18 stack can found at:

 !     

 !     https://devcenter.heroku.com/articles/ruby-support#supported-runtimes

 !

 !     Push rejected, failed to compile Ruby app.

 !     Push failed

Однако в моих Gemfile и Gemfile.lock я НЕ использую ruby-2.3.8. Вот почему я очень смущен. У меня есть ссылки на мои Gemfile gist и Gemfile.lock gist .

Вещи, которые я пробовал на Heroku:

Бег bundle install.

Это . Не удалось решить проблему, мой Gemfile, Gemfile.lock и локальный Ruby - это ВСЕ 2.6.3.

Убедитесь, что Gemfile и Gemfile.lock являются самыми последними в моем Github.

Запуск gem install bundler -v 1.17.3 но это дает мне ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /var/lib/gems/2.5.0 directory

РЕДАКТИРОВАТЬ:

После запуска heroku run ruby -v выясняется, что моя версия Ruby на самом деле ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]

Ответы [ 2 ]

2 голосов
/ 20 июня 2019

Возможно, что "благословенная" версия пакета еще не была обновлена ​​до 2.0.2, и только официальный пакет * ruby ​​* поддерживает только 2.0.1.

Чтобы проверить это, вы можетеотредактируйте Gemfile.lock вручную и измените:

BUNDLED WITH
  2.0.2

на 2.0.1

Это будет переопределено каждый раз, когда вы bundle, поэтому, если это исправление, вы можете захотетьпонизить пакет на некоторое время.

1 голос
/ 20 июня 2019

В Heroku вы не можете настроить версию пакета напрямую -> https://devcenter.heroku.com/articles/bundler-version#app-not-using-the-currently-supported-bundler-version

Я предполагаю, что вы используете buildpack-пакет heroku, если нет, то вы захотите установить его.

Вы можете переключиться на поддерживаемый пакет сборки с помощью:

heroku buildpacks:set heroku/ruby

Мне кажется, у меня были проблемы, когда heroku не обновлялся, попробуйте ответить на первые 2 вопроса здесь Heroku не обновляет мой код?

Одна из ловушек героки - вам нужно будет поработать над их конструкцией. Я бы удостоверился, что вы используете любую версию bundler и ruby, которую они хотят локально, перед развертыванием и после развертывания подтвердите, перейдя в окно heroku, чтобы подтвердить, что это та же версия.

Sidenote, использование ключевого слова ruby будет работать только для определенных версий компоновщика https://devcenter.heroku.com/articles/ruby-versions#selecting-a-version-of-ruby

Обычно я устанавливаю свою версию ruby ​​в файл .ruby-version в корне проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...