проблема с получением rack_env с приложением foreman / heroku для facebook - PullRequest
1 голос
/ 20 марта 2012

Трудно получить правильную локальную настройку.Пытаясь запустить мастера и получить сообщение об ошибке:

 web: bundle exec thin -R config.ru start -p $PORT -e ${RACK_ENV:-development}
 RACK_ENV:"FACEBOOK_APP_ID=275479742529226"
 RACK_ENV:"FACEBOOK_SECRET=xxx"

работает "запуск мастера"

15:21:21 RACK_ENV.1  | process terminated
15:21:21 web.1       | started with pid 23406
15:21:21 system      | sending SIGTERM to all processes
15:21:21 RACK_ENV.1  | started with pid 23407
15:21:21 system      | sending SIGTERM to pid 23406
15:21:21 RACK_ENV.1  | started with pid 23408
 15:21:21 RACK_ENV.1  | /Users/mc/.rvm/gems/ruby-  1.9.2-p290/gems/foreman-          
0.41.0/bin/foreman-runner: line 36: exec: "FACEBOOK_APP_ID=275479742529226": not found

, очевидно, я устанавливаю свои ключи fb совершенно неправильно для env .. если кто-нибудь могвыручитьЯ попытался настроить файл .env в корне, который содержит

FACEBOOK_APP_ID = 964173273189 FACEBOOK_SECRET = xxx

Удаление всего из procfile (который я считаю неправильным в любом случае) иработает бригадир, разве он не должен забрать файл .env в корне по умолчанию?что не доказывает никакой удачи.

  5:44:20 web.1     | started with pid 23705
  15:44:24 web.1     | missing env vars: please set FACEBOOK_APP_ID and FACEBOOK_SECRET         
  with your app credentials
  15:44:24 web.1     | process terminated
  15:44:24 system    | sending SIGTERM to all processes

Спасибо

1 Ответ

11 голосов
/ 18 апреля 2012

Не думаю, что проблема в том, что мастер не находит .env, а в том, что синтаксис вашего Procfile неверен. Каждая строка в Procfile после : должна выполняться в командной строке.

Создайте Procfile со следующим содержимым:

web: bundle exec thin -R config.ru start -p $PORT -e $RACK_ENV

И установите для вашего .env файла:

RACK_ENV=development
FACEBOOK_APP_ID=1234
FACEBOOK_SECRET=xyz

Обратите внимание, что RACK_ENV var необходимо явно указать, тогда как PORT - нет, поскольку Foreman автоматически устанавливает его.

...