我正在尝试在heroku上部署一个烧瓶应用程序。我已经到了应用程序构建和部署的程度,但是当我尝试转到URL时,应用程序超时时出现以下错误。
Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
我认为问题在于我的procfile。它有一行。
web: python add_entry3.py
其他人的procfiles看起来像这样:
web: gunicorn app:app
这只是一个玩具应用程序,我不关心性能所以我认为我不需要使用gunicorn用于Web服务器。我应该在我的应用程序的文件名后添加冒号和命令(add_entry3.py)吗?
答案 0 :(得分:3)
很可能你的烧瓶应用程序没有回答Heroku期望的端口和接口。默认情况下,Flask 仅侦听127.0.0.1,我想在端口5000.Heroku将您的应用程序传递给PORT
环境变量,您需要告诉Flask收听所有接口。
但是除了性能之外还有其他原因要避免Flask的生产代码的默认调试服务器。它有内存泄漏,有安全隐患,而且真的......只是不做。将gunicorn添加到您的requirements.txt并使用它。
但如果您必须使用Flask测试/调试服务器,请将app.run()
调用更改为以下内容:
app.run(host='0.0.0.0', port=int(os.environ.get("PORT", 5000)))