Rails Gemfile: использовать одну линию в разработке, другую в производстве

Мы запускаем Unicorn на Heroku в производственном процессе, но используем Webrick при разработке на локальной машине. Мы не можем установить Unicorn на локальный компьютер.

Возможно ли, чтобы Rails загружал драгоценный камень Единорога только в производстве? В настоящее время наше решение состоит в том, чтобы закомментировать драгоценный камень Unicorn при локальном запуске приложения и раскомментировать драгоценный камень при отправке в Heroku.

Мы на 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

Спасибо!

1 ответ

Возможно ли, чтобы Rails загружал драгоценный камень Единорога только в производстве? В настоящее время наше решение состоит в том, чтобы закомментировать драгоценный камень Unicorn при локальном запуске приложения и раскомментировать драгоценный камень при отправке в Heroku.

Да, это возможно при использовании групп в Gemfile, Обновите свой Gemfile как следует для unicorn драгоценный камень в production только:

# Gemfile
group :production do 
  gem 'unicorn'
end

поскольку WEBrick является веб-сервером по умолчанию для приложений rails, вам не нужно ничего указывать для development группа.

Бег 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
Другие вопросы по тегам