Защо получавам грешка, когато се опитвам да разположа приложението Ruby on Rails в Heroku?

Когато се опитвам да разположа моето приложение Ruby on Rails в Heroku, получавам някои грешки:

git push heroku master
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 585 bytes | 585.00 KiB/s, done.
Total 5 (delta 3), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Rake app detected
remote: rake aborted!
remote: LoadError: cannot load such file -- bundler/setup
remote: /tmp/build_7852350a661d0da59c96dfb8f01c0e07/config/boot.rb:3:in `<top (required)>'
remote: /tmp/build_7852350a661d0da59c96dfb8f01c0e07/config/application.rb:1:in `require_relative'
remote: /tmp/build_7852350a661d0da59c96dfb8f01c0e07/config/application.rb:1:in `<top (required)>'
remote: /tmp/build_7852350a661d0da59c96dfb8f01c0e07/Rakefile:4:in `require_relative'
remote: /tmp/build_7852350a661d0da59c96dfb8f01c0e07/Rakefile:4:in `<top (required)>'
remote: (See full trace by running task with --trace)
remote:  !     Push rejected, failed to compile Rake app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !   Push rejected to remojobs.
remote: 
To https://git.heroku.com/sampleapp-miro.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/sampleapp-miro.git'

Използвам Ruby 2.4.0, Rails 5.2.3, а Bundler е 2.0.2.

По-долу представям пълните грешки от heroku logs:

2019-06-29T18:04:32.000000+00:00 app[api]: Build started by user [email protected]
2019-06-29T18:04:34.000000+00:00 app[api]: Build failed -- check your build output: https://dashboard.heroku.com/apps/8a339527-87e4-40c9-bee5-326119c29f60/activity/builds/a430cb9b-857a-4764-9abc-cefd14e45caf
2019-06-29T18:08:37.167236+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=sampleapp-miro.herokuapp.com request_id=f2ff0cfa-9faa-46d8-81c2-cd8c200fdc8a fwd="195.136.56.0" dyno= connect= service= status=503 bytes= protocol=https
2019-06-29T18:08:41.059684+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=sampleapp-miro.herokuapp.com request_id=456e9d84-7286-4b75-8a7d-50e397b9b8be fwd="195.136.56.0" dyno= connect= service= status=503 bytes= protocol=https
2019-06-29T18:09:09.000000+00:00 app[api]: Build started by user [email protected]
2019-06-29T18:09:10.000000+00:00 app[api]: Build failed -- check your build output: https://dashboard.heroku.com/apps/8a339527-87e4-40c9-bee5-326119c29f60/activity/builds/c596ea0f-4936-45e1-a415-517178338c70
2019-06-29T18:13:26.000000+00:00 app[api]: Build started by user [email protected]
2019-06-29T18:13:27.000000+00:00 app[api]: Build failed -- check your build output: https://dashboard.heroku.com/apps/8a339527-87e4-40c9-bee5-326119c29f60/activity/builds/c78a0330-354f-4c1f-b04e-24418ab36b02
2019-06-29T18:14:42.000000+00:00 app[api]: Build started by user [email protected]
2019-06-29T18:14:43.000000+00:00 app[api]: Build failed -- check your build output: https://dashboard.heroku.com/apps/8a339527-87e4-40c9-bee5-326119c29f60/activity/builds/29cfa1cd-6af1-4bcc-8b4d-825e9131043c
2019-06-29T18:15:32.000000+00:00 app[api]: Build started by user [email protected]
2019-06-29T18:15:33.000000+00:00 app[api]: Build failed -- check your build output: https://dashboard.heroku.com/apps/8a339527-87e4-40c9-bee5-326119c29f60/activity/builds/43c3e880-6880-4cc8-b8b1-5184e7d66c86
2019-06-29T18:17:04.000000+00:00 app[api]: Build started by user [email protected]
2019-06-29T18:17:05.000000+00:00 app[api]: Build failed -- check your build output: https://dashboard.heroku.com/apps/8a339527-87e4-40c9-bee5-326119c29f60/activity/builds/d10a1410-48e9-48d1-9400-43a1b4fa0ea1

Когато стартирам heroku buildpacks просто виждам

Buildpack URL https://github.com/gunpowderlabs/buildpack-ruby-rake-deploy-tasks

АКТУАЛИЗИРАНО

Използвах: heroku buildpacks:remove https://github.com/gunpowderlabs/buildpack-ruby-rake-deploy-tasks

и след това:

git push heroku master

дава ми следните грешки:

remote: Bundle completed (163.52s) remote: Cleaning up the bundler cache. remote: -----> Installing node-v10.15.3-linux-x64 remote: -----> Detecting rake tasks 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: ! Activating bundler (2.0.1) failed: remote: ! Could not find 'bundler' (= 2.0.1) - did find: [bundler-2.0.2] remote: ! Checked in 'GEM_PATH=vendor/bundle/ruby/2.4.0', execute 'gem env' for more information remote: ! To install the version of bundler this project requires, run gem install bundler -v '2.0.1' remote: /app/tmp/buildpacks/b7af56db6e6816adee09d510091abc07/lib/language_pack/helpers/rake_runner.rb:106: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: Activating bundler (2.0.1) failed: remote: Could not find 'bundler' (= 2.0.1) - did find: [bundler-2.0.2] remote: Checked in 'GEM_PATH=vendor/bundle/ruby/2.4.0', execute 'gem env' for more information remote: To install the version of bundler this project requires, run gem install bundler -v '2.0.1'


person Miro    schedule 29.06.2019    source източник
comment
Вашите Gemfile и Gemfile.lock актуални ли са и включени ли са във вашето хранилище?   -  person Chris    schedule 29.06.2019
comment
@Chris Да, Gemfile и Gemfile.lock са включени нормално.   -  person Miro    schedule 29.06.2019
comment
Моля, редактирайте въпроса си и добавете изхода от регистрационния файл, който предшества това, което вече сте споделили.   -  person Chris    schedule 29.06.2019
comment
Току-що редактирах публикацията и добавих регистрационните файлове на Heroku.   -  person Miro    schedule 29.06.2019
comment
Добре, вашият дневник пише No web processes running. (a) Какво има във вашето Procfile? (b) Вашите Gemfile и Gemfile.lock проверени ли са във вашето хранилище?   -  person Chris    schedule 29.06.2019
comment
(a) Нямам този файл в моя проект или не знам, че го имам. (б) да, включени са.   -  person Miro    schedule 30.06.2019
comment
Gemfile и Gemfile.lock в корена (горната директория) на вашето хранилище ли са? Това ли е пълният резултат за компилация? Трябва да има много повече.   -  person Chris    schedule 30.06.2019
comment
@Chris Да, нормално е тези файлове да са в корена на проекта. Къде трябва да са като не в основния каталог?   -  person Miro    schedule 30.06.2019
comment
Не, те трябва да са в корена. Просто се опитвам да разбера защо дневникът ви за изграждане е толкова кратък. Изглежда, че не инсталира никакви зависимости... ръчно ли сте задали buildpack, или разчитате на откриване на buildpack? Опитайте да стартирате heroku buildpacks и вижте какво казва това.   -  person Chris    schedule 30.06.2019
comment
@Chris Хм, heroku buildpacks показва само Buildpack URL https://github.com/gunpowderlabs/buildpack-ruby-rake-deploy-tasks   -  person Miro    schedule 30.06.2019


Отговори (2)


Хм, показва само heroku buildpacks

Buildpack URL https://github.com/gunpowderlabs/buildpack-ruby-rake-deploy-tasks

Ето ти проблема. В даден момент изрично сте избрали този buildpack и той е грешен. Предлагам премахване на настройката за buildpack:

heroku buildpacks:remove https://github.com/gunpowderlabs/buildpack-ruby-rake-deploy-tasks

След това стартирайте heroku buildpacks отново. Трябва да видите нещо подобно

<your-app> has no Buildpack URL set.

След като това стане, разположете отново кода си. Heroku ще разпознае Ruby проект по наличието на Gemfile и автоматично ще използва съответния buildpack.

person Chris    schedule 30.06.2019
comment
Добре, изпълних горните ти предложения. Всичко е наред до завършване на пакета: 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: ! Activating bundler (2.0.1) failed: remote: ! Could not find 'bundler' (= 2.0.1) - did find: [bundler-2.0.2] remote: ! Checked in 'GEM_PATH=vendor/bundle/ruby/2.4.0', execute 'gem env' remote: ! To install the version of bundler this project requires, run 'gem install bundler -v '2.0.1'' - person Miro; 30.06.2019
comment
Това е много трудно да се прочете в коментар. Моля, редактирайте въпроса си и вместо това добавете актуализираната информация там. - person Chris; 30.06.2019
comment
Сега виждам още нещо: когато деинсталирам всички версии на пакета (2.0.1 и 2.0.2) и инсталирам отново 2.0.1, както е показано при грешките по-долу - виждам това Installing dependencies using bundler 2.0.2, когато се опитам да git push heroku master отново. Знаеш ли защо? - person Miro; 30.06.2019
comment
И в долната част на Gemfile.lock е: RUBY VERSION: ruby 2.4.0p0 и BUNDLED WITH: 2.0.1 - person Miro; 30.06.2019
comment
Добре, разреших горния проблем и добавям актуализираната информация. Благодаря :) - person Miro; 01.07.2019
comment
Моля, не редактирайте отговорите във въпроса си и не добавяйте решение към заглавието си. Вместо това отбележете правилен отговор, като щракнете върху отметката. Можете също да добавите свой собствен отговор и да го приемете, ако нито един от получените не реши проблема ви. Върнах въпроса ви към предишната версия. - person Chris; 02.07.2019

Добре, реших проблема. Може би ще помогне на някого в бъдеще:

  • актуализирайте версията на Ruby до 2.6.1
  • gem uninstall bundler и инсталирайте отново gem install bundler -v 2.0.2
  • изтрийте Gemfile.lock и bundle install
  • git push heroku master
  • работи :)
person Miro    schedule 04.07.2019