Как я могу запускать несколько приложений из нескольких пакетов с помощью мастера

У меня есть рубиновое приложение, которое зависит от нескольких веб-сервисов, которые я создал.

Для начала у меня есть следующий Procfile:

mondodb: /home/dwaynemac/mongodb/bin/mongod 
accounts: ./script/start_accounts.sh
contacts: ./script/start_contacts.sh
activity: ./script/start_activity_stream.sh
web: ./script/start.sh

Каждый из этих скриптов start_xxx.sh делает что-то вроде:

cd ../activity_stream; bundle exec unicorn -p 3003 -c ./config/unicorn.rb

Если я вручную запускаю эту предыдущую строку, activity_stream работает нормально. Но когда убегал от бригадира, некоторые геммы не распознавались. Как будто связка не правильно построена.

Пример ошибки:

activity_stream/config/boot.rb:2:in `require': no such file to load -- grape (LoadError)

person dwaynemac    schedule 31.10.2012    source источник


Ответы (2)


Используйте гем subcontractor, чтобы изменить рабочий каталог:

image_fallback: subcontract -d lib/rack/img_fallback/ -- bundle exec unicorn -c unicorn.conf config.ru
person glebm    schedule 01.11.2012
comment
только что узнал об этом драгоценном камне, и это фантастика! Раньше у меня было 3 вкладки, каждая из которых запускала свой форман, но теперь у меня есть одна со всем. Следует отметить, что теперь все журналы отображаются в одном окне, но в моем случае с этим можно справиться. - person Levi Rosol; 27.01.2013

Вам придется использовать новую оболочку bash для каждого приложения, которое вы хотите загрузить.

# Procfile
app1: sh -c 'cd path/to/app1 && bundle exec rackup config.ru -p $PORT'
app2: sh -c 'cd path/to/app2 && bundle exec rackup config.ru -p $PORT'

Тогда используйте мастер

foreman start --procfile path/to/Procfile

Подробнее здесь http://www.seanbehan.com/how-to-boot-up-multiple-sinatra-applications-at-the-same-time-with-foreman

person seanbehan    schedule 15.10.2013