Heroku использует более старую Ruby версию при запуске `bundle install` - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь запустить приложение Rails на Ruby 2.7.1 на Heroku. Все работало нормально, затем я изменил что-то в своем Gemfile, чтобы использовать пронумерованные параметры Ruby 2.7 , и теперь развертывание завершается сбоем с этим сообщением об ошибке:

remote: -----> Build succeeded!
remote: -----> Ruby app detected
remote: -----> Installing bundler 2.0.2
remote: -----> Removing BUNDLED WITH version in the Gemfile.lock
remote: -----> Compiling Ruby/Rails
remote:
remote:  !
remote:  !     There was an error parsing your Gemfile, we cannot continue
remote:  !
remote:  !     [!] There was an error parsing `Gemfile`: Undefined local variable or method `_1' for Gemfile. Bundler cannot continue.
remote:  !
remote:  !     #  from /tmp/build_6681cf5c/Gemfile:22
remote:  !     #  -------------------------------------------
remote:  !     #  dependencies.any? { _1.name == gem_name }
remote:  !     #  -------------------------------------------
remote:  !     . Bundler cannot continue.

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

Из-за ошибки Undefined local variable or method '_1' for Gemfile. Я предполагаю, что Ruby версия <2.7 используется при запуске <code>bundle install. Само приложение отлично работает на Ruby 2.7.1:

$ heroku run "ruby -v"
Running ruby -v on ⬢ myapp... up, run.7979 (Free)
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]

Здесь есть еще несколько подобных вопросов, касающихся SO, но все они связаны с Heroku, не соблюдающим версию Ruby, установленную в Gemfile. или. ruby -версия, что для меня не проблема, просто во время bundle install кажется, что по какой-то причине используется другая Ruby версия ...

Есть ли способ для дальнейшей отладки или принудительно Ruby 2.7 даже во время bundle install при развертывании?

...