2013-06-23 92 views
13

我想一旦但是推的代码我得到的错误部署烧瓶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 

我不知道该怎么尝试部署瓶应用的Heroku,我已经试过更改端口从5000到33507,但无济于事。我Procfile看起来是这样的:

web: python main.py 

main.py是主要的瓶文件,启动服务器。

谢谢。

+0

你可以发布你的main.py(使用任何数据库凭证,但没有删除) –

+0

你会接受@msiemens发布作为答案吗? –

回答

4

您的main.py脚本无法绑定到特定的端口,它需要绑定到$PORT环境变量中设置的端口号。 Heroku在调用你的应用程序之前在它的变量中设置它想要的端口。

您收到的错误表明您绑定的端口不是Heroku所期望的。

28

在托管在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'将提供从网络瓶。)

+0

适合我的完美解决方案!有用 – rodrigorf

0

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) 

你Procfile应指定(港口),在这种情况下,存储在Heroku的环境变量$端口地址

web: gunicorn --bind 0.0.0.0:${PORT} wsgi