что такое "путь мастера" для поведения по-разному в производстве против развитие? То есть мы хотим, чтобы начинающий начинал пучок материал в dev, однако в производстве героику нам не нужно его запускать (например) solr.
Развитие мастера и производство (рельсы)
Ответ 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. Ваша ссылка.