适用于Heroku上Flask App的Procfile格式

时间:2017-06-27 18:43:42

标签: python heroku flask

我正在尝试在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)吗?

1 个答案:

答案 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)))