如何在无头/非交互模式下运行容器化 Streamlit 应用程序?

mir*_*phd 5 openshift docker kubernetes streamlit

Streamlit 服务器(例如使用 运行streamlit run app-name.py)在每个用户首​​次运行时需要与她进行交互 - 接受或拒绝此介绍消息:

  Welcome to Streamlit!

  If you are one of our development partners or are interested in
  getting personal technical support, please enter your email address
  below. Otherwise, you may leave the field blank.

  Email:
Run Code Online (Sandbox Code Playgroud)

然后 Streamlit 等待输入,无法守护进程(在后台运行),这很快会导致 Kubernetes 或 Openshift 中的 docker 容器崩溃(进入著名的崩溃循环后退程序)。

如何通过在无头/非交互模式下运行 Streamlit 来避免此类崩溃?

YSc*_*arf 8

Streamlit 文档中,您可以找到可配置选项的详细列表。向下滚动,您将找到无头选项。只需编辑配置文件即可。

headless = true

另请参阅这篇文章

  • 出色的!从第二个链接可以看出,Streamlit 用途广泛,甚至不需要在容器内传送自定义配置文件。您可以使用环境变量(`STREAMLIT_SERVER_HEADLESS=true`)或传递给服务器的参数(`streamlit run your_app.py --server.headless true`)来完成此操作。 (2认同)