Подтвердить что ты не робот

Развитие мастера и производство (рельсы)

что такое "путь мастера" для поведения по-разному в производстве против развитие? То есть мы хотим, чтобы начинающий начинал пучок материал в dev, однако в производстве героику нам не нужно его запускать (например) solr.

4b9b3361

Ответ 1

Я следую соглашению;

  • Procfile определяет все процессы
  • .foreman установить специальные переменные мастера

Разработка:

  • .env устанавливает переменные среды для каждого разработчика
  • .env.example устанавливает значения по умолчанию для разработки
  • foreman start запускает все процессы

Производство:

  • heroku config устанавливает переменные среды
  • heroku ps:scale включает или выключает любые процессы, необходимые для производства

Вот пример из проекта.

PROCFILE:

web:    bundle exec unicorn_rails -p $PORT -c ./config/unicorn.rb
worker: bundle exec rake jobs:work
search: bundle exec rake sunspot:solr:run

.env.example:

# default S3 bucket
S3_KEY=keykeykeykeykeykey
S3_SECRET=secretsecretsecret
S3_BUCKET=myapp-development

.env

# developer private S3 bucket
S3_KEY=mememememememememe
S3_SECRET=mysecretmysecret
S3_BUCKET=myapp-development

.foreman:

# development port is 3000
port: 3000

Ответ 2

Foreman принимает аргументы для использования другого файла (-d) и аргументов, чтобы указать, что нужно запускать. Он также поддерживает файл .foreman, который позволяет этим args стать стандартными. Подробнее см. http://ddollar.github.com/foreman/

Ответ 3

Я использовал среду Procfile для среды, которая довольно проста и прекрасно работает.

В основном у вас есть Procfile.development, Procfile.production и т.д. В каждом из них вы можете настроить procs, которые хотите запустить, а затем запустить их через foreman следующим образом:

foreman start -f Procfile.development

Другой подход заключается в том, чтобы ссылаться на скрипты в вашем Procfile, и внутри каждого script запускать соответствующий процесс на основе среды. Создатель Формана делает это и пример из своего проекта Anvil. Ваша ссылка.