"bundler: failed to load command: thin" 在 Heroku 上
"bundler: failed to load command: thin" on Heroku
我正在使用 Ruby 2.2.7 和 Rails 3.2.21,并尝试部署 gem: locomotive_cms
版本:~> 2.5.7
在 Heroku 上,它已成功部署,但我面临以下错误:
2017-08-12T23:33:13.732440+00:00 app[web.1]: bundler: failed to load command: thin (/app/vendor/bundle/ruby/2.2.0/bin/thin)
2017-08-12T23:33:13.732490+00:00 app[web.1]: /app/vendor/bundle/ruby/2.2.0/gems/excon-0.23.0/lib/excon/middlewares/expects.rb:6:in `response_call'
因此,它也会产生这个:
Heroku::API::Errors::ErrorWithResponse: Expected(200) <=> Actual(400 Bad Request)
我的 Gemfile 中有 thin
,根据其文档,这是 locomotivecms 所必需的。
我也有其他类似的问题,但我仍然无法解决我的问题。我有 Ruby 版本:2.2.7
,而它说的是:/app/vendor/bundle/ruby/2.2.0/bin/thin
宝石文件:
source 'https://rubygems.org'
ruby "2.2.7"
gem 'rails', '3.2.21'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'locomotive_cms', '~> 2.5.7', :require => 'locomotive/engine'
gem 'dotenv-rails'
gem 'savon', '~> 2.3.0' # SOAP client for pulling in events
gem 'twitter', '5.8.0'
gem 'twitter-text'
gem 'whenever', require: false
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'compass-rails', '~> 2.0.0'
gem 'sass-rails', '~> 3.2.4'
gem 'coffee-rails', '~> 3.2.2'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '~> 1.2.4'
end
group :development do
gem 'unicorn'
gem 'pry'
end
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'
# To use Jbuilder templates for JSON
# gem 'jbuilder'
# Use unicorn as the app server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'debugger'
# To use on Heorku
gem 'locomotive-heroku', '~> 0.1.0', :require => 'locomotive/heroku'
gem 'thin'
Gemfile.lock:
您可以在这里找到它:https://gist.github.com/Arslan-Ali-Butt/640c1ec1750d17c9803e12a492f35c4e
添加一个 Procfile(将一个名为 Procfile 的文件放在应用程序的根目录中),以告诉 Heroku 使用 thin,如下所示:
web: bundle exec thin start -p $PORT
这将允许您 运行 在 Heroku 上精简生产。我假设您的 Gemfile 已正确配置
根据Heroku API guide,第二条消息指向一个错误的请求,但很难说它与第一条错误消息有何关联。
提前为坏消息道歉。
我查看了您的 Gemfile 和 Gemfile.lock,还查看了 PR https://github.com/locomotivecms/locomotive-heroku/pull/11 and the latest 2.5.x branch of locomotive_cms at https://github.com/locomotivecms/engine/tree/v2.5.x。由于您所依赖的 Gems 版本缺乏维护,您的功能已经结束。
locomotive_cms
已重命名为 locomotivecms
并升级到版本 3+。 locomotive_cms
gem 不再维护。不仅如此,它还不再与您正在使用的许多其他依赖项兼容,即 excon。
Bundler could not find compatible versions for gem "excon":
In Gemfile:
locomotive_cms was resolved to 2.5.8, which depends on
fog (~> 1.12.1) was resolved to 1.12.1, which depends on
excon (~> 0.23.0)
locomotive-heroku was resolved to 0.1.0, which depends on
heroku-api (~> 0.3.23) was resolved to 0.3.23, which depends on
excon (~> 0.44)
您需要阅读 https://locomotive-v3.readme.io/docs/upgrade-to-v3 中的升级指南。
我正在使用 Ruby 2.2.7 和 Rails 3.2.21,并尝试部署 gem: locomotive_cms
版本:~> 2.5.7
在 Heroku 上,它已成功部署,但我面临以下错误:
2017-08-12T23:33:13.732440+00:00 app[web.1]: bundler: failed to load command: thin (/app/vendor/bundle/ruby/2.2.0/bin/thin) 2017-08-12T23:33:13.732490+00:00 app[web.1]: /app/vendor/bundle/ruby/2.2.0/gems/excon-0.23.0/lib/excon/middlewares/expects.rb:6:in `response_call'
因此,它也会产生这个:
Heroku::API::Errors::ErrorWithResponse: Expected(200) <=> Actual(400 Bad Request)
我的 Gemfile 中有 thin
,根据其文档,这是 locomotivecms 所必需的。
我也有其他类似的问题,但我仍然无法解决我的问题。我有 Ruby 版本:2.2.7
,而它说的是:/app/vendor/bundle/ruby/2.2.0/bin/thin
宝石文件:
source 'https://rubygems.org'
ruby "2.2.7"
gem 'rails', '3.2.21'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'locomotive_cms', '~> 2.5.7', :require => 'locomotive/engine'
gem 'dotenv-rails'
gem 'savon', '~> 2.3.0' # SOAP client for pulling in events
gem 'twitter', '5.8.0'
gem 'twitter-text'
gem 'whenever', require: false
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'compass-rails', '~> 2.0.0'
gem 'sass-rails', '~> 3.2.4'
gem 'coffee-rails', '~> 3.2.2'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '~> 1.2.4'
end
group :development do
gem 'unicorn'
gem 'pry'
end
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'
# To use Jbuilder templates for JSON
# gem 'jbuilder'
# Use unicorn as the app server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'debugger'
# To use on Heorku
gem 'locomotive-heroku', '~> 0.1.0', :require => 'locomotive/heroku'
gem 'thin'
Gemfile.lock:
您可以在这里找到它:https://gist.github.com/Arslan-Ali-Butt/640c1ec1750d17c9803e12a492f35c4e
添加一个 Procfile(将一个名为 Procfile 的文件放在应用程序的根目录中),以告诉 Heroku 使用 thin,如下所示:
web: bundle exec thin start -p $PORT
这将允许您 运行 在 Heroku 上精简生产。我假设您的 Gemfile 已正确配置
根据Heroku API guide,第二条消息指向一个错误的请求,但很难说它与第一条错误消息有何关联。
提前为坏消息道歉。
我查看了您的 Gemfile 和 Gemfile.lock,还查看了 PR https://github.com/locomotivecms/locomotive-heroku/pull/11 and the latest 2.5.x branch of locomotive_cms at https://github.com/locomotivecms/engine/tree/v2.5.x。由于您所依赖的 Gems 版本缺乏维护,您的功能已经结束。
locomotive_cms
已重命名为 locomotivecms
并升级到版本 3+。 locomotive_cms
gem 不再维护。不仅如此,它还不再与您正在使用的许多其他依赖项兼容,即 excon。
Bundler could not find compatible versions for gem "excon":
In Gemfile:
locomotive_cms was resolved to 2.5.8, which depends on
fog (~> 1.12.1) was resolved to 1.12.1, which depends on
excon (~> 0.23.0)
locomotive-heroku was resolved to 0.1.0, which depends on
heroku-api (~> 0.3.23) was resolved to 0.3.23, which depends on
excon (~> 0.44)
您需要阅读 https://locomotive-v3.readme.io/docs/upgrade-to-v3 中的升级指南。