2017-02-10 9 views
1

Как я могу открыть динамический $ PORT из Heroku в файле Docker? Я толкаю мой контейнер докера с heroku container:push web --app=... в Heroku, это работает.

В этом случае журналы Heroku я читал: heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch, я интерпретирую это так, как будто порт из моего файла Dockerfile не может быть открыт через Heroku.

Данной документации по этому вопросу нет. Как я могу открыть порт Докера в порт Heroku?

Это мой Dockerfile:

FROM alpine:3.3 

ADD binary_file . 

EXPOSE 37780 

CMD ["./binary_file"] 

ответ

1

Я не думаю, что вы можете (не порт динамически?).

Я думаю, вы должны использовать переменную окружения PORT в своем приложении (т. Е. Ваше приложение должно привязываться к этому порту внутри контейнера).

Предположив ваше приложение будет запустить сервер питон HTTP, ваш CMD должен быть что-то вроде этого:

CMD ["sh", "-c", "/usr/bin/python -m SimpleHTTPServer ${PORT}"] 
+0

Спасибо за ваше предложение, однако в моем конкретном случае я не имею возможности определить порт для двоичный код, запущенный внутри контейнера. – Hoetmaaiers

+1

Как насчет того, что другой сервис перенаправляет порт внутри вашего контейнера (т. Е. Эта служба привязывается к случайному порту героя и перенаправляет весь трафик на фиксированный порт приложения)? – Salem

+0

Хорошо, это звучит как законное решение и способ легко забыть. Спасибо @Salem! – Hoetmaaiers