我们在生产中使用Heroku运行Unicorn,但在本地机器上使用Webrick进行开发。我们无法在本地计算机上安装Unicorn。
是否可以让Rails仅在生产中加载Unicorn gem?现在,我们的解决方案是在本地运行应用程序时注释掉Unicorn gem,并在推送到Heroku时取消注释gem。
我们正在使用Rails 3.2.12。
的Gemfile:
source 'http://rubygems.org'
gem 'rails', '3.2.12'
gem 'jquery-rails'
# # =========================================================================================
#
# #=========================================================================================
gem 'mongo'
gem 'mongo_mapper'
gem 'plucky'
gem 'bson_ext'
gem 'bson'
gem 'newrelic_rpm'
gem 'rpm_contrib'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
谢谢!
答案 0 :(得分:2)
是否可以让Rails仅在生产中加载Unicorn gem? 现在,我们的解决方案是在运行时注释掉Unicorn gem 当地应用程序,并在推送到Heroku时取消注释宝石。
是的,可以通过Gemfile
中的群组使用。仅更新Gemfile
仅unicorn
中production
宝石的# Gemfile
group :production do
gem 'unicorn'
end
:
WEBrick
由于development
是rails应用的默认网络服务器,因此您无需为bundle install
组指定任何内容。
Gemfile
更新后运行production
仍会安装生产宝石。这绝对是一件好事,因为您希望确保您计划在生产中使用的宝石在项目的开发阶段与您的应用程序一起正常工作。
要跳过bundle install --without production
群组宝石的安装:
--without production
关于bundle install
选项需要注意的一点是,对bundle update
和BUNDLE_WITHOUT: production
的后续调用也将跳过安装和更新生产宝石。要禁用此功能,您需要从app_root/.bundle/config
# app_root/.bundle/config
BUNDLE_WITHOUT: production
{{1}}