Rails Gemfile.lock

时间:2014-03-08 18:11:53

标签: ruby-on-rails ruby-on-rails-3 heroku gemfile gemfile.lock

我在Gemfile

中添加了一个用于开发的部分
group :development do
    gem 'thin'
end

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

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

1 个答案:

答案 0 :(得分:0)

我在heroku上使用独角兽,为了发展而使用瘦身。我的独角兽和瘦身包含在gemfile的顶部(瘦不在开发中)并且它们工作正常..检查你的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