Не удалось обнаружить задачи rake

   ensure you can run `$ bundle exec rake -P` against your app with no environment variables present
   and using the production group of your Gemfile.
   This may be intentional, if you expected rake tasks to be run
   cancel the build (CTRL+C) and fix the error then commit the fix:
   rake aborted!

У меня нет никаких задач rake, которые я хотел бы запустить автоматически. Должен ли я просто игнорировать это предупреждение?

4 ответов


вы также можете попробовать включить user-env-compile

heroku labs:enable user-env-compile

Я начал получать эту странную ошибку вдруг вчера. Heroku подтвердил создание обновление в Ruby buildpack...

это связано с Rakefile. Ваш Rakefile требует каких-либо файлов? Требуется ли ваши файлы приложений? Если это так, то приложение не должно вызывать исключения при загрузке без каких-либо настроек vars.

это противоречит интуиции, потому что приложение никогда не работает без набора конфигурационных vars.

В моем случае Приложение Sinatra искало url базы данных в файле init:

uri = URI.parse( ENV[ "REDISTOGO_URL" ])

это вызовет исключение, если нет набора env vars.

у вас может быть такая же проблема с другими URL-адресами базы данных, такими как Mongo или Postgres.

Итак, защитите от пропавших без вести env vars:

if  ENV[ "REDISTOGO_URL" ]
  uri = URI.parse( ENV[ "REDISTOGO_URL" ])
  ...

вы можете проверить, будет ли он работать, прежде чем нажать на Heroku, запустив bundle exec rake -P

кроме того, убедитесь, что все ваши тесты после обновления ваш init. Удалить кэшированные файлы состояние инициализации путем перезапуска Spork или аналогичного.

ссылки: показать ошибки Rakefile в развертывании Ruby


Действует С 05 Декабря 2013 Года,Heroku добавил отладочный вывод для развертывания С помощью Ruby build pack.

ошибка активации:

  • если assets:precompile задач не существует или
  • если есть ошибка в Rakefile.
    • две распространенные причины ошибок в Rakefile ссылаются на зависимость, недоступную в производстве (например, rspec) или
    • ожидание наличия переменной среды.

это противоречит интуиции, потому что приложение никогда не работает без конфигурационных vars, но процесс сборки Heroku выполняется без config vars.

в соответствии с сообщением об ошибке, убедитесь, что вы можете запустить bundle exec rake -P RAILS_ENV=production без переменных окружения перед нажатием на Heroku (например, прокомментируйте свою среду переменные при выполнении вышеупомянутой команды).

кроме того, будьте уверены, что rake ' s -P переключатель безвреден, поэтому вы можете запускать его столько, сколько хотите, пока не устраните эту проблему. Этот переключатель используется для отображение списка всех задач и их непосредственных предпосылок. посмотреть Использование Командной Строки Rake если вы хотите перепроверить. Выход может быть более 200 линии, и выглядят примерно так:

rake about
    environment
rake assets:clean
    environment
rake assets:clobber
    environment
rake assets:environment
rake assets:precompile
    environment
rake db:_dump
...
rake tmp:pids:clear
rake tmp:sessions:clear
rake tmp:sockets:clear

FWIW я только что столкнулся с этой проблемой.

оказалось, что у меня config.assets.css_compressor = :sass прокомментировал, Когда была задача рейка, ссылаясь на нее в production.rb.

очень простой надзор, но это вызовет rake assets:precompile потерпеть неудачу и таким образом вызвать эту ошибку.