0

我在我的Gemfile

group :development do
    gem 'thin'
end

然后bundle install在我的本地机器上运行。这创造了一个Gemfile.lock包含薄的。我将此文件签入到 repo 并推送到 Heroku。通常我unicorn在生产中使用服务器。但是当这个版本的 Gemfile 被推送到 Heroku 时,应用程序崩溃说command thin not found.

我不明白为什么只包含在开发组中的 gem 会影响我的生产部署。什么是仅在开发中包含 gem 但不影响 Heroku 生产部署的正确方法?

4

1 回答 1

0

我在 heroku 上使用独角兽,在开发中使用薄。我的 unicorn 和 thin 包含在 gemfile 的顶部(thin 不在开发中),它们工作正常。检查你的 unicorn.rb(我的如下)并更新你的 gemfile。

worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
timeout 15
preload_app true

before_fork do |server, worker|
  Signal.trap 'TERM' do
    puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
    Process.kill 'QUIT', Process.pid
  end

  defined?(ActiveRecord::Base) and
    ActiveRecord::Base.connection.disconnect!
end

after_fork do |server, worker|
  Signal.trap 'TERM' do
    puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT'
  end

  defined?(ActiveRecord::Base) and
    ActiveRecord::Base.establish_connection
end
于 2014-04-03T02:13:52.373 回答