heroku: bash: bundle: команда не найдена
Я портирую приложение Heroku из Aspen в Cedar stack в Heroku, следуя их инструкциям.
Я на последнем шаге развертывания. Я получаю эту ошибку:
2012-10-22T11:23:53+00:00 heroku[web.1]: Starting process with command `bundle exec thin start -p 40310 -e production`
2012-10-22T11:23:54+00:00 app[web.1]: bash: bundle: command not found
Я не вижу, как я могу нести ответственность за то, чтобы сообщить стеку Heroku, где находится пакет, или предоставить его, так как bundler используется им именно для этой работы. Эта команда указана в Procfile для приложения:
web: bundle exec thin start -p $PORT -e $RACK_ENV
другой аналогичный вопрос о stackoverflow предполагает, что это происходит, если приложение изначально толкнуто на Heroku без Procfile, поэтому Heroku получает неправильное представление о том, что это за приложение. Этот плакат удалил его приложение и создал новое и сообщил об успехе. Тем не менее, усилия, связанные с удалением и воссозданием моего перенесенного приложения, высоки. Есть ли способ исправить это, а не начинать все сначала?
2 ответов
процесс сборки слизня Heroku должен был измениться в отношении приложений ruby 1.8.7. Я предполагаю, что они начали связывать 1.8 пути вместо 1.9.1 для 1.8 приложений. Мое ранее работавшее приложение перестало работать после того, как я попытался нажать новую редакцию.
вот что заставило его снова работать:
heroku config:add PATH=bin:vendor/bundle/1.8/bin:/usr/local/bin:/usr/bin:/bin GEM_PATH=vendor/bundle/1.8
Я взял эти пути из недавно созданного приложения, используя тот же репозиторий git, что и раньше.
EDIT: оказывается, heroku опубликовал статью devcenter Изменение Версии Ruby Ломает Путь это указывает пути для различных версий ruby.
У меня была та же проблема, и я решил ее, установив правильные переменные конфигурации heroku
$ heroku config
=== xxxx Config Vars
DATABASE_URL: postgres://(...)
GEM_PATH: vendor/bundle/ruby/1.9.1
HEROKU_POSTGRESQL_CRIMSON_URL: postgres://(...)
LANG: en_US.UTF-8
PATH: bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin
PGBACKUPS_URL: https://(...)
RACK_ENV: production
RAILS_ENV: production
вы можете создать пустое приложение rails, нажать его на heroku и проверить переменные, которые он автоматически установил, а затем скопировать (и адаптировать) их к вашему приложению