我正在尝试将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
Run Code Online (Sandbox Code Playgroud)
我不知道该尝试什么,我已经尝试将端口从5000更改为33507,但无济于事.我的Procfile看起来像这样:
web: python main.py
Run Code Online (Sandbox Code Playgroud)
main.py 是启动服务器的主要Flask文件.
谢谢.
msi*_*ens 41
在我在Heroku上托管的Flask应用程序中,我使用此代码启动服务器:
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)
Run Code Online (Sandbox Code Playgroud)
在本地开发时,这将使用端口5000,在生产中Heroku将设置PORT环境变量.
(旁注:默认情况下,Flask只能从您自己的计算机访问,而不能从网络中的任何其他计算机访问(请参阅快速入门).设置host='0.0.0.0'将使Flask从网络上可用)
小智 5
除了msiemens的答案
import os
from run import app as application
if __name__ == '__main__':
port = int(os.environ.get('PORT', 5000))
application.run(host='0.0.0.0', port=port)
Run Code Online (Sandbox Code Playgroud)
您的Procfile应该指定端口地址,在这种情况下,该端口地址存储在heroku环境变量$ {PORT}中。
web: gunicorn --bind 0.0.0.0:${PORT} wsgi
您的main.py脚本无法绑定到特定端口,它需要绑定到$PORT环境变量中设置的端口号。Heroku 在调用您的应用程序之前在该变量中设置所需的端口。
您收到的错误表明您绑定到的端口不是 Heroku 期望的端口。
| 归档时间: |
|
| 查看次数: |
7241 次 |
| 最近记录: |