Ошибка героя: "Не удалось обнаружить задачи рейка"

Я пытаюсь развернуть базовое приложение, и оно не работает. Используя

git push heroku master 

Я получил это сообщение об ошибке:

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:  !     rake aborted!
remote:  !     LoadError: cannot load such file -- /tmp/build_a1cfcabff50107f84830d908386197b2/config/application
remote:  !     /tmp/build_a1cfcabff50107f84830d908386197b2/Rakefile:4:in `require'
remote:  !     /tmp/build_a1cfcabff50107f84830d908386197b2/Rakefile:4:in `<top (required)>'
remote:  !     /tmp/build_a1cfcabff50107f84830d908386197b2/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/rake_module.rb:28:in `load'
remote:  !     /tmp/build_a1cfcabff50107f84830d908386197b2/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/rake_module.rb:28:in `load_rakefile'
remote:  !     /tmp/build_a1cfcabff50107f84830d908386197b2/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:689:in `raw_load_rakefile'
remote:  !     /tmp/build_a1cfcabff50107f84830d908386197b2/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:94:in `block in load_rakefile'
remote:  !     /tmp/build_a1cfcabff50107f84830d908386197b2/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:176:in `standard_exception_handling'
remote:  !     /tmp/build_a1cfcabff50107f84830d908386197b2/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:93:in `load_rakefile'
remote:  !     /tmp/build_a1cfcabff50107f84830d908386197b2/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:77:in `block in run'
remote:  !     /tmp/build_a1cfcabff50107f84830d908386197b2/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:176:in `standard_exception_handling'
remote:  !     /tmp/build_a1cfcabff50107f84830d908386197b2/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/application.rb:75:in `run'
remote:  !     /tmp/build_a1cfcabff50107f84830d908386197b2/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/bin/rake:33:in `<top (required)>'
remote:  !     vendor/bundle/bin/rake:16:in `load'
remote:  !     vendor/bundle/bin/rake:16:in `<main>'
remote:  !
remote: /app/tmp/buildpacks/ruby/lib/language_pack/helpers/rake_runner.rb:102:in `load_rake_tasks!': Could not detect rake tasks (LanguagePack::Helpers::RakeRunner::CannotLoadRakefileError)

bundle exec rake -P работает нормально.

В моем Gemfile ничего особенного, я просто добавил Bootstrap:

source 'https://rubygems.org'


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.5.1'

# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc

gem 'bootstrap-sass' 
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use Unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
#postgreeSQL for Heroku deployment


group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug'
  gem 'sqlite3'
end

group :development do
  # Access an IRB console on exception pages or by using <%= console %> in views
  gem 'web-console', '~> 2.0'


  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
end
group :production do
  gem 'pg'
  gem 'rails_12factor'
end
ruby "2.2.3"

Ну, я не понимаю, почему это происходит, так как у меня есть другой проект, который работает нормально. Я проверил все, и это все еще дает мне это сообщение.

Ответ 1

Иногда Heroku бросает вопрос о размещении активов. Вы можете предварительно скомпилировать ресурсы и отправить их в Heroku.

RAILS_ENV=production bundle exec rake assets:precompile

Обновить:

В случае, если это не сработает, обязательно добавьте RAILS_SERVE_STATIC_FILES env. к вашему серверу.

Сделай его enabled или true ни anything :)

Потому что в Rails <5.1 production.rb имеет

config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?

Heroku: Приложение → Настройки → "Показать настройки"

Образец: enter image description here

Ответ 2

"Любой сбой при компиляции ресурсов теперь приведет к сбою push-запроса. Информацию о поддержке конвейера ресурсов в Rails 5 см. на странице поддержки Ruby".

В конвейере ресурсов Rails предусмотрена задача rake "предварительно скомпилировать актив", позволяющая компилировать и кэшировать ресурсы заранее, а не компилировать при каждой загрузке приложения. Существует два способа использования конвейера активов на Heroku. Компиляция ресурсов локально. Компиляция активов во время компиляции пули.

Чтобы скомпилировать ваши ресурсы локально, запустите задачу assets: precompile локально в вашем приложении. Убедитесь, что вы используете производственную среду для создания рабочей версии ваших активов.

Прежде чем вы сможете скомпилировать свои ресурсы на Heroku, вам нужно иметь возможность скомпилировать их локально, запустите эту команду для отладки ваших ресурсов:

RAILS_ENV=production bundle exec rake assets:precompile

Это должно завершиться без ошибок. НЕ проверяйте ресурсы в git после выполнения этой команды, если используете Rails 3 согласно документации Heroku.

Публичный каталог/каталог ресурсов будет создан. Внутри этого каталога вы найдете файл manifest.yml, который включает md5sums скомпилированных ресурсов в Rails 3. В Rails 4 файл будет manifest-.json. Добавление public/assets в ваш git-репозиторий сделает его доступным для Heroku.

git add public/assets
git commit -m "vendor compiled assets"'

Теперь при нажатии выходные данные должны показать, что ваши локально скомпилированные активы были обнаружены:

-----> Preparing Rails asset pipeline
   Detected manifest.yml, assuming assets were compiled locally

Дополнительную помощь можно найти здесь

И здесь

Ответ 3

используйте rbenv для установки ruby 2.6.0

 rbenv install 2.6.0

Затем перейдите в каталог вашего проекта и установите версию ruby

 rbenv local 2.6.0

Удалить установочные пакеты

 gem uninstall bundler

Затем установите последний пакет, ниже будет установлен последний пакет

 gem install bundler

Тогда тебе пора.

Ответ 4

Я предпринял все эти шаги при попытке решить ту же ошибку:

remote: -----> Installing node-v10.15.3-linux-x64
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:  !     Activating bundler (2.0.1) failed:
remote:  !     Could not find 'bundler' (2.0.1) required by your /tmp/build_2e6c96ff8cd3ab115ee56c51d05c7a28/Gemfile.lock.
remote:  !     To update to the latest version installed on your system, run 'bundle update --bundler'.
remote:  !     To install the missing version, run 'gem install bundler:2.0.1'
remote:  !     Checked in 'GEM_PATH=/tmp/build_2e6c96ff8cd3ab115ee56c51d05c7a28/vendor/bundle/ruby/2.6.0', execute 'gem env' for more information
remote:  !     
remote:  !     To install the version of bundler this project requires, run 'gem install bundler -v '2.0.1''
remote:  !
remote: /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/helpers/rake_runner.rb:106:in 'load_rake_tasks!': Could not detect rake tasks (LanguagePack::Helpers::RakeRunner::CannotLoadRakefileError)

Что происходило при попытке развернуть таким же образом. Я следовал всем командам в производственной среде, которые выдает сообщение об ошибке, но которые до сих пор не решили. Мои версии:

~/movie_list [master] $ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]
~/movie_list [master] $ bundler version
Bundler version 2.0.1 (2019-01-04 commit d7ad2192f)

Решение, которое сработало для меня, наконец-то пришло из этого вопроса, который я нашел на bundler. Для того, чтобы развернуть, мне пришлось удалить

BUNDLED WITH
   1.17.1

из моего gemfile.lock, а затем используйте git push heroku master.

Ответ 5

Вы также можете добавить файл PG Gem в производство в вашем файле gem

Gemfile

group :production do
 gem 'pg'
 gem 'rails_12factor'
end

group :development do
 gem 'sqlite3'
end

ИЛИ ЖЕ:

# Use sqlite3 as the database for Active Record
gem 'sqlite3', group: [:development, :test]

gem 'rails_12factor', group: :production
gem 'pg', group: :production

После того, как вы добавили, что там сохранить и запустить следующее:

Терминал

gem install bundler
bundle install
git add .
git commit -m "Some comment here..."
git push heroku master