2014-12-23 3 views
2

Я пытаюсь получить приложение Crossbar.io, работающее на Heroku. Crossbar.io требует, чтобы вы разместили хост приложения в файле конфигурации, который использовался для запуска приложения. Я пробовал следующее:Получить хост и порт для приложения Heroku

  1. my-app-name.herokuapp.com: Нет кубиков. Я полагаю, что Heroku делает какое-то причудливое перенаправление внутри, что мешает этому работать.
  2. $ HOSTNAME: запуск сценария, который выводит HOSTNAME, и использование результата в файле конфигурации также не работает. HOSTNAME - это GUID, который не содержит полезной информации.
  3. IP: Я попытался получить внешний IP-адрес приложения, но не повезло. IP меняется каждый раз, когда я запускаю приложение.

Есть ли установленный способ сделать это на Heroku?

Также для конфигурации требуется порт, и Heroku, кажется, назначает их динамически. Любой способ доступа к порту (в идеале до запуска приложения)

ответ

1

Для хоста 0.0.0.0. Для номера порта это немного сложнее ...

Когда он создает веб-динамо, Heroku устанавливает переменную окружения PORT с портом динамомашины. Чтобы установить это в перекладину, вам нужно создать скрипт, который считывает эту переменную и записывает ее в вашу конфигурацию везде, где запрашивается порт. Тогда вы убедитесь, что скрипт возвращает 0 на выходе и поместите в вашем PROCFILE:

Веб: ./your_config_helper_script & & перекладине начать

Это запускает скрипт первый (который должен получить ваш конфигурационный файл готов) перед запуском перекладины