尝试将应用程序部署到Heroku时遇到了我无法处理的错误(这是我第一次)。
# ERROR when I try to `git push heroku master`
remote: -----> Detecting rake tasks
remote:
remote: !
remote: ! Could not detect rake tasks
remote: ! ensure you can run `$ bundle exec rake -P` against your app
remote: ! and using the production group of your Gemfile.
remote: ! Activating bundler (2.0.1) failed:
remote: ! Could not find 'bundler' (2.0.1) required by your /tmp/build_e569680f858939ef8f1f8ef3e8902eff/Gemfile.lock.
remote: ! To update to the latest version installed on your system, run `bundle update --bundler`.
remote: ! To install the missing version, run `gem install bundler:2.0.1`
remote: ! Checked in 'GEM_PATH=/tmp/build_e569680f858939ef8f1f8ef3e8902eff/vendor/bundle/ruby/2.6.0', execute `gem env` for more information
remote: !
remote: ! To install the version of bundler this project requires, run `gem install bundler -v '2.0.1'
# heroku buildpacks
=== staging-det-music Buildpack URLs
1. heroku/nodejs
2. heroku/ruby
# Gemfile.lock
RUBY VERSION
ruby 2.6.1p33
BUNDLED WITH
2.0.1
我尝试了几种解决方案,例如:
运行RAILS_ENV=production bundle exec rake assets:precompile
(请参阅here)
添加RAILS_SERVE_STATIC_FILES
键(相同)
将Ruby升级到2.6.3(请参见here,使用rbenv或rvm无法找到2.6.3)
我相信这可能是由于this issue造成的。我对此感到担心吗?
2)使用binstubs运行命令而不是bundle exec时,错误 使用Ruby 2.6.x时,可以激活Bundler版本。这个错误 向Ruby Core报告,并将在Ruby 2.6.3被修复时修复 已发布。
短期内,解决方法是确保 Procfile和app.json以bundle exec开头。例如:
web: bundle exec bin/rails server -p $PORT -e $RAILS_ENV
worker: bundle exec sidekiq -C config/sidekiq.yml
作为一个新手,我真的迷失了,有人可以帮我吗?
感谢您的时间
解决方案:发现here删除了BUNDLED WITH
和Gemfile.lock中的以下行
答案 0 :(得分:1)
有known issues with Bundler 2 on Heroku,其中包括:
指定捆绑程序2.0.2的Gemfile.lock不适用于捆绑程序2.0.1
如果您尝试将使用捆绑器2.0.2的应用程序部署到带有捆绑器2.0.1的Heroku平台上,则可能会出现以下错误:
`find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
这是由于Rubygems捆绑程序版本检查代码中的错误所致。为避免此问题,请升级您的Ruby版本。它在2.5.5+和2.6.3+中已修复。如果不更新,则为Ruby版本,则Bundler 2.x的每个新发行版都会触发此问题。
在本地将Ruby至少升级到2.6.3版本,在ruby
,Gemfile
中更新bundle install
版本,提交更改并重新部署。