Использовать различные Procfile, для разработки и производства
У меня есть домашнее приложение Sinatra, для которого я намерен использовать Heroku для его размещения.
Я использую Форман и дробовик в разработке, со следующим Procfile:
web: shotgun config.ru -s thin -o 0.0.0.0 -p $PORT -E $RACK_ENV
Он отлично работает как с разработкой, так и с производством. Но дело в том,Я не хочу использовать дробовик производства так как это слишком медленно.
можем ли мы использовать отдельные конфигурации Procfile как для dev, так и для prod?
2 ответов:
вы могли бы использовать два
Procfiles(например,ProcfileиProcfile.dev) и использоватьforemans-fопции чтобы выбрать другой для использования в dev:в dev (
Procfile.devсодержитshotgunвеб-процесса):foreman start -f Procfile.devпроизводства
foreman startзаберет нормальныйProcfile.в качестве альтернативы вы можете создать
binкаталог в вашем приложении со скриптом для запуска соответствующего веб-сервера в зависимости от$RACK_ENV(идея, которую я нашел в a комментарий создателя Foreman, так что стоит задуматься).
вот способ справиться с этим с помощью одного Procfile и переменных окружения. Я использую это на Heroku.
установите ваше окружение:
export WEB_START_COMMAND='node index.js' export WORKER_START_COMMAND='node worker.js'Procfile:
web: eval '$WEB_START_COMMAND' worker: eval '$WORKER_START_COMMAND'экспорт различных команд запуска в среде сервера и разработчика.
Comments