Проблема с развертыванием Heroku Gemfile.lock - PullRequest
4 голосов
/ 09 июня 2011

Я довольно новичок в этом деле. Я однажды развернул свое приложение, когда впервые его создал, и тогда все вроде работало нормально. Теперь я внес некоторые изменения в свое приложение, и я хотел бы развернуть их и убедиться, что они работают в производственной среде. Я добавил и зафиксировал последние изменения и объединил свои изменения в основную ветку. Тогда я побежал git push heroku master. Я получил следующую ошибку в выводе:

Gemfile detected, running Bundler version 1.0.7
   Unresolved dependencies detected; Installing...
   Using --without development:test
   You have modified your Gemfile in development but did not check
   the resulting snapshot (Gemfile.lock) into version control

Хорошо, мне нужно обновить свой гемфайл. Сначала я проверил содержимое моего .gitignore файла:

.bundle
db/*.sqlite3*
log/*.log
*.log
/tmp/
doc/
*.swp
*~
.project
.DS_Store
.psd

Gemfile.lock, похоже, там нет, но я все равно попробовал следующее:

git add .
git commit -m "updated Gemfile.lock"

Затем я снова толкнул Героку и получил ту же ошибку. Далее я попробовал:

git add Gemfile Gemfile.lock
git commit -m "updated Gemfile.lock (again)"

После нажатия я получил тот же результат. После поиска в течение некоторого времени, я нашел этот пост, который побудил меня попробовать следующее:

gem update bundler
bundle update
git add Gemfile Gemfile.lock
git commit -m "updated Gemfile.lock (again (again))"

Все еще не повезло, и у меня почти нет идей на данный момент. Буду признателен за любые предложения.

Ответы [ 3 ]

10 голосов
/ 28 июня 2011

Ну, оказывается, ответ был довольно прост.Согласно Парню Поддержки Heroku, вы не можете использовать операторы if в своем Gemfile.Оскорбительная строка из моего Gemfile была:

gem 'rb-fsevent', :require => true if (RUBY_PLATFORM =~ /darwin/i)
2 голосов
/ 01 октября 2011

Мы работали с Guard на Linux и Mac, и столкнулись с той же проблемой при развертывании Heroku. Наш обходной путь состоял в том, чтобы установить Gem как плагин вместо условного в Gemfile. В нашем случае изменение в Gemfile было следующим:

# guard
gem "growl", "~> 1.0.3"
gem "guard-coffeescript", "0.4.1"
gem "guard-sass", "0.3.3"
gem "rb-fsevent", "0.4.3.1"
gem "libnotify"
#gem "rb-inotify", "~> 0.8.8", :require => false if RUBY_PLATFORM =~ /darwin/i

Затем мы побежали: rails plugin install git://github.com/nex3/rb-inotify.git и были готовы пойти.

0 голосов
/ 09 июня 2011

У вас есть файл Gemfile.lock вообще?Он должен существовать в том же каталоге, что и ваш Gemfile.

Если нет, запустите "bundle install".Это должно создать его.

Это все еще не решит вашу проблему, тогда я попробую начать все сначала: клонируйте ваш репозиторий git в новый пустой каталог, запустите пакетную установку, запустите ваши тесты, запуститеразработка сервера и тренировка - короче, убедитесь, что все работает, затем попробуйте снова развернуть на heroku.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...