Мне стало так удобно использовать 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
, и я был бы признателен за любые идеи или рекомендации. Я подозреваю, что это что-то простое и очевидное, но я впервые пытаюсь заставить все эти части работать вместе в производственной среде.