У меня есть приложение Rails Heroku, которое использует Ruby 2.6.5 и Rails 6.0.2.2. Это поддерживаемая Ruby версия от Heroku, и я указал ее в. ruby -version, моем Gemfile и Gemfile.lock:
~ $ cat .ruby-version
2.6.5
~ $ cat Gemfile
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '2.6.5'
[...]
~ $ cat Gemfile.lock
[...]
RUBY VERSION
ruby 2.6.5p114
Однако, когда я запускаю bundler env
в удаленном приложении, это первая часть вывода:
~ $ bundle env
## Environment
Bundler 2.0.2
Platforms ruby, x86_64-linux
Ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]
Full Path /usr/bin/ruby2.5
Config Dir /etc
RubyGems 2.7.6
Gem Home /var/lib/gems/2.5.0
Gem Path /app/vendor/bundle/ruby/2.6.0:
User Path /app/.gem/ruby/2.5.0
Bin Dir /usr/local/bin
Tools
Git 2.17.1
RVM not installed
rbenv not installed
chruby not installed
Обратите внимание, что он использует Ruby 2.5.1. Это мешает мне запускать Rails-миграции, потому что я всегда получаю ошибку Your Ruby version is 2.5.1, but your Gemfile specified 2.6.5
. Я что-то упустил?
Вещи, которые я пробовал, которые не вызвали каких-либо изменений в поведении:
- Запуск совершенно нового приложения Heroku с помощью приложения с бесплатным sh deploy
- Запуск
/bin/bash
в приложении Heroku и ручное обновление Bundler
Есть ли способ заставить Bundler использовать правильную версию Ruby?