heroku: Gemfile.lock is required issue

2020-02-05 07:13发布

问题:

I have the following issue:

I'm trying to deploy my project on heroku but after i run

git push heroku master

I get the following:

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 git@heroku.com:*****.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:*****.git'

I have run bundle install and bundle update for several times, i tried to delete Gemfile.lock from the repository and from my filesystem. But i still get the same message. Can anyone tell me what am i doing wrong?

The branch i'm trying to push is cloned from master.

回答1:

Few things

  1. Did you placed Gemfile.lock in git? if yes, is it lock (means updated? - you did several times just double check)
  2. Just do bundle install on your local prompt.
  3. now place Gemfile.lock
    • git add . or you can add only Gemfile.lock with this git add Gemfile.lock
    • git commit -m "commit message here"
    • git push

Now do git push heroku it should work.



回答2:

On your development machine run rm -rf .bundle && bundle install && git add Gemfile.lock && git commit -m "Added Gemfile.lock" Then deploy.



回答3:

Most likely your Gemfile.lock is not committed to your repository. Use git st and ensure that the Gemfile.lock is committed; check your .gitignore file to make sure that you're not accidentally ignoring it.



回答4:

Check your .gitignore file, if you put Gemfile.lock there, get rid of that line and run this commands:

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


回答5:

It's telling you that you need to push a Gemfile.lock - that's how Heroku knows what versions of gems your application is using. After bundling locally, commit the resultant Gemfile.lock then push the application to Heroku.



回答6:

I had this problem, I forgot the bundle install

After it and git & Heroku everything went OK
Don't forget either the git remote

after writing your code the sequence would be :

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

I think it's complete



回答7:

Just remove the /Gemfile.lock from your .gitignore



回答8:

You also need to check your .hgignore file as well and remove the line Gemfile.lock