Развертывание колбы с Heroku
Я пытаюсь развернуть приложение Flask в Heroku, но, нажав на код, я получаю сообщение об ошибке
2013-06-23T11:23:59.264600+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
Я не уверен, что попробовать, я пытался изменить порт с 5000 на 33507, но безрезультатно. Мой Procfile выглядит так:
web: python main.py
main.py
- основной файл фляги, который инициирует сервер.
Спасибо.
Ответы
Ответ 1
В моем приложении Flask, размещенном на Heroku, я использую этот код для запуска сервера:
if __name__ == '__main__':
# Bind to PORT if defined, otherwise default to 5000.
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)
При разработке локально это будет использовать порт 5000, в процессе производства Heroku установит переменную среды PORT
.
(Боковое примечание: по умолчанию флажок доступен только с вашего собственного компьютера, а не с любого другого в сети (см. Quickstart). Настройка host='0.0.0.0'
сделает Flask доступной из сети)
Ответ 2
Ваш main.py
script не может привязываться к определенному порту, ему необходимо привязать к номеру порта, установленному в переменной среды $PORT
. Heroku устанавливает требуемый порт в этой переменной до вызова вашего приложения.
Ошибка, которую вы получаете, предполагает, что вы привязываетесь к порту, который не тот, который ожидает Heroku.