Heroku использует старую версию Ruby при запуске `bundle install`

Я пытаюсь запустить приложение Rails на Ruby2.7.1 на Heroku. Все работало нормально, затем я что-то изменил в своем Gemfile, чтобы использовать нумерованные параметры Ruby2.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 bundle install. Однако само приложение отлично работает на Ruby2.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-version, что не является проблемой для меня, только во время bundle install кажется, по какой-то причине он использует другую версию Ruby...

Есть ли способ отладить это дальше или заставить Ruby2.7 даже во время bundle install по развертыванию?

0 ответов

Другие вопросы по тегам