Подтвердить что ты не робот

Развертывание колбы с 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 - основной файл фляги, который инициирует сервер.

Спасибо.

4b9b3361

Ответ 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.