2012-03-07 2 views
13

У меня есть следующий вопрос:Heroku: Gemfile.lock требуется Issue

Я пытаюсь развернуть свой проект на Heroku, но после того, как я бегу

git push heroku master 

я получаю следующее:

git push heroku master -f 
Counting objects: 524, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (498/498), done. 
Writing objects: 100% (524/524), 157.76 KiB, done. 
Total 524 (delta 207), reused 62 (delta 2) 
-----> Heroku receiving push 
-----> Ruby/Rails app detected 
! 
!  Gemfile.lock is required. Please run "bundle install" locally 
!  and commit your Gemfile.lock. 
! 
!  Heroku push rejected, failed to compile Ruby/rails app 
To [email protected]:*****.git 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to '[email protected]:*****.git' 

Я запустил bundle install и bundle update несколько раз, я попытался удалить Gemfile.lock из репозитория и из своей файловой системы. Но я все равно получаю то же сообщение. Может ли кто-нибудь сказать мне, что я делаю неправильно?

Ветвь, которую я пытаюсь нажать, клонируется от мастера.

ответ

21

Немногие вещи

  1. ли вы разместили Gemfile.lock в мерзавца? если да, то это блокировка (означает обновление? - вы делали несколько раз только двойную проверку)
  2. Просто сделайте bundle install в своем локальном приглашении.
  3. Теперь поместите Gemfile.lock
    • git add . или вы можете добавить только Gemfile.lock с этим git add Gemfile.lock
    • мерзавца совершить -м "сообщение фиксации здесь"
    • GIT Вдавите

Теперь сделайте git push heroku, он должен работать.

+3

Я делал это несколько раз, но все равно получил ту же проблему – RomanKapitonov

+0

Хорошо, сначала удалите Gemfile.lock из Heroku и github и поместите новый, можете ли вы зайти в чат? - http://chat.stackoverflow.com/ мы можем общаться –

5

Скорее всего, ваш Gemfile.lock не будет привязан к вашему репозиторию. Используйте git st и убедитесь, что Gemfile.lock зафиксирован; проверьте свой файл .gitignore, чтобы убедиться, что вы не случайно его игнорируете.

+3

Я проверил его, этот файл находится в моей фиксации. использовал 'git ls-files', чтобы проверить это – RomanKapitonov

0

Это говорит вам, что вам нужно нажать Gemfile.lock - вот как Героку знает, какие версии камней используют ваше приложение. После связывания локально скопируйте полученный Gemfile.lock, затем нажмите приложение на Heroku.

6

На вашем этапе разработки машины rm -rf .bundle && bundle install && git add Gemfile.lock && git commit -m "Added Gemfile.lock" Затем разверните.

2

Проверьте файл .gitignore, если вы поместите Gemfile.блокировка есть, чтобы избавиться от этой линии и запустить эти команды:

git add Gemfile.lock 
git commit -m "Added Gemfile.lock" 
git push 
git push heroku 
0

я эту проблему, я забыл bundle install

После этого и мерзавец & Heroku все прошло ОК
Не забудьте либо git remote

после написания кода последовательность будет:

bundle install 
heroku create 
git init 
git add * 
git remote 
git commit -a -m "First init" 
git push heroku master 

Я считаю, что это полный

Смежные вопросы