我在Gemfile
group :development do
gem 'thin'
end
然后在我的本地计算机上运行bundle install
。这创建了一个包含thin的Gemfile.lock
。我把这个文件签入了回购并推送到了Heroku。通常我在生产中使用unicorn
服务器。但是当这个版本的Gemfile被推送到Heroku时,应用程序崩溃了command thin not found
。
我不明白为什么仅包含在开发组中的gem会影响我的生产部署。仅在开发中包含gem而不影响Heroku生产部署的正确方法是什么?
答案 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