Python - Heroku 部署错误启动超时

Posted

技术标签:

【中文标题】Python - Heroku 部署错误启动超时【英文标题】:Python - Heroku deployment error boot timeout 【发布时间】:2020-10-10 17:44:06 【问题描述】:

我在 python 中创建了一个流式应用程序,并尝试在几个 youtube 视频之后将其部署到 Heroku。但是,我不断收到以下错误,不知道如何更正。

2020-06-20T14:53:35.863016+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2020-06-20T14:53:35.885669+00:00 heroku[web.1]: Stopping process with SIGKILL
2020-06-20T14:53:35.970864+00:00 heroku[web.1]: Process exited with status 137
2020-06-20T14:53:36.011903+00:00 heroku[web.1]: State changed from starting to crashed
2020-06-20T14:53:36.749597+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=stockinfo-sl.herokuapp.com request_id=9ef454ce-0c45-423b-84ed-c6aa8fbd5a8f fwd="73.181.67.146" dyno= connect= service= status=503 bytes= protocol=https

这是我推送到heroku的以下文件。

    app.py(在我的本地机器上运行的流式应用)

    过程文件

    web: sh setup.sh && streamlit run app.py
    

    requirements.txt

    pandas==1.0.3
    streamlit==0.61.0
    datetime
    beautifulsoup4==4.9.1
    requests==2.23.0
    

    setup.sh

    mkdir -p ~/.streamlit/
    
    echo "\
    [server]\n\
    headless = true\n\
    port = $PORT\n\
    enableCORS = false\n\
    \n\
    " > ~/.streamlit/config.toml
    

我已经尝试删除应用程序并将其推回 heroku 几次,但没有运气,也没有运气重新启动 dynos。有人看到我推送的文件有什么问题吗?谢谢。

【问题讨论】:

第一条错误信息可能很关键——你的 web 进程必须绑定到一个外部可见的端口。例如,如果您使用 Flask,则需要在 run() 参数中使用 host='0.0.0.0'。见***.com/questions/36683571/… 【参考方案1】:

网络测功机必须在启动后 60 秒内绑定到其分配的 $PORT。如果没有,则由测功机管理器终止,并记录 R10 引导超时错误

您需要在您的 procfile 中将$PORT 传递给streamlit

web: sh setup.sh && streamlit run --server.port $PORT app.py

这里的文档可能会有所帮助:https://devcenter.heroku.com/articles/dynos#web-dynos

【讨论】:

以上是关于Python - Heroku 部署错误启动超时的主要内容,如果未能解决你的问题,请参考以下文章

错误 R10(启动超时)-> Web 进程在启动后 60 秒内无法绑定到 $PORT - Heroku

错误 R10(启动超时)-> Web 进程未能在启动后 60 秒内绑定到 $PORT - HEROKU ERROR

在 python 上获取“错误 R10(启动超时)-> Web 进程未能在启动后 60 秒内绑定到 $PORT”

heroku 连接超时(连接超时)

Heroku Django 应用程序错误:工作人员超时问题 (H12)

heroku中的django应用程序出现工作超时错误