Из цикла "Записки на манжетах". В смысле - мало ли, пригодится кому-либо из пользователей
Heroku Cloud PaaS данная информация; причем, зная статистику ключевых запросов этого сайта - я уверен, что пригодится. Итак.
Вполне может случиться такое, что деплой вашего rails-app на Heroku закончится неудачей, а консоль при этом будет сообщать примерно следующее:
Code:
remote: -----> Detecting rake tasks
remote:
remote: !
remote: ! Could not detect rake tasks
remote: ! ensure you can run `$ bundle exec rake -P` against your app
remote: ! and using the production group of your Gemfile.
remote: ! /usr/bin/env: ‘ruby.ruby3.1’: No such file or directory
remote: !
remote: /tmp/codon/tmp/buildpacks/6509f915ccf2c/lib/language_pack/helpers/rake_runner.rb:100:in `load_rake_tasks!': Could not detect rake tasks (LanguagePack::Helpers::RakeRunner::CannotLoadRakefileError)
remote: ensure you can run `$ bundle exec rake -P` against your app
remote: and using the production group of your Gemfile.
remote: /usr/bin/env: ‘ruby.ruby3.1’: No such file or directory
Соответственно, итог предсказуем:
Code:
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to pure-inlet-58153.
Гугление, очень может быть, не даст ничего, или почти ничего. Не самая распространенная ошибка, видимо. Хотя случается. Что касается меня, угораздило наткнуться на такое аккурат после апгрейда from Rails 6 to Rails 7 своего приложения: ну не идет деплой, и все тут:
Code:
bin/rails app:update
Разгадка на самом деле проста, решение элементарно. Грепаем для начала:
Code:
$ git grep ruby.ruby3.1
bin/rails:#!/usr/bin/env ruby.ruby3.1
bin/rake:#!/usr/bin/env ruby.ruby3.1
bin/setup:#!/usr/bin/env ruby.ruby3.1
lines 1-3/3 (END)
, сразу после чего
correcting a bad shebang line
:
You can manually edit any incorrect “shebang” lines to read:
Code:
#!/usr/bin/env ruby
Once you’ve done this make sure to commit the results back to git:
Code:
$ git add .
$ git commit -m "fixing shebang lines"
$ git push heroku master
Проблема исчерпана: повторяем деплой, который на этот раз имеет шансы на успех.