Использование узла-бригадира под супервизором в производстве

Мне стало так удобно использовать foreman с приложениями Rails на Heroku и в других местах, что я ищу клоны, когда работаю с другими языки; Я использую honcho для Python/Django, а также node-foreman для разработки экспресс-проекта. Я готов запустить этот проект Express в производство (Ubuntu 14.04 на Amazon EC2), но у меня проблемы.

Я могу запускать и запускать проект с помощью nf start, но в документах node-foreman сказано, что нельзя демонизировать такую ​​​​вещь, а скорее создать файл supervisord conf, используя что-то вроде

nf export --type supervisord --user ubuntu

Это работает, и результаты выглядят правильно, но приложение Express не запускается, так как не может получить значения из значений среды. supervisord успешно запускает сервер RESTful API на основе Django на том же хосте. Конфиденциальные значения заменены, foreman-web-1.conf выглядит так:

[program:foreman-web-1]
command=npm start
autostart=true
autorestart=true
stopsignal=QUIT
stdout_logfile=/var/log/foreman-web-1.stdout.log
stderr_logfile=/var/log/foreman-web-1.stderr.log
user=ubuntu
directory=/home/sites/site-root
environment=PORT="3000",API_HOST="api.example.com",USER="user",PASS="password",SES_USER="ses_user",SES_PASS="ses_pass",SES_SMTP_HOST="email-smtp.us-west-2.amazonaws.com",SES_SMTP_PORT="587",RECAPTCHA_SITE_KEY="site_key",RECAPTCHA_SECRET="secret",FEEDBACK="[email protected]",PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games",PORT="3000",FOREMAN_WORKER_NAME="web.1"

но stderr.log содержит

/home/sites/site-root/node_modules/express-recaptcha/lib/express-recaptcha.js:27
  if (!this.site_key) throw new Error('site_key is required');
                            ^
Error: site_key is required

что указывает на то, что переменные среды RECAPTCHA_ не видны.

Я не могу понять, связана ли проблема с supervisord или моим приложением Express или с node-foreman, и я был бы признателен за любые идеи или рекомендации. Я подозреваю, что это что-то простое и очевидное, но я впервые пытаюсь заставить все эти части работать вместе в производственной среде.


person Eric Theise    schedule 27.05.2015    source источник


Ответы (1)


Очевидно, требуется много усилий, чтобы сообщить supervisord, что вы серьезно относитесь к изменению настроек. Этот ответ о сбое сервера помог мне прозреть.

person Eric Theise    schedule 27.05.2015