可能需要在config.toml里添加 [server] headless=true 因为默认是true,会导致部署的机器主动去打开浏览器。 不过我说的不一定对。
云托管docker部署streamlit后无法建立websocket链接?docker文件内容如下 FROM python:3.9.18 # 设定当前的工作目录 WORKDIR /app # 拷贝当前项目到/app目录下(.dockerignore中文件除外) COPY . /app RUN pip install --user -r requirements.txt -i https://mirrors.tencent.com/pypi/simple/ ENV PATH=/root/.local/bin:$PATH # 此处端口必须与「服务设置」-「流水线」以及「手动上传代码包」部署时填写的端口一致,否则会部署失败。 EXPOSE 8501 RUN chmod +x /app/start.sh CMD ["bash", "start.sh"] requirements.txt内容如下:(streamlit-login-auth-ui只支持python3.9+) streamlit==1.26.0 streamlit-login-auth-ui==0.2.0 lunar_python==1.3.4 app.py内容如下:(就是个正常的页面,可以换成其他更简单的) # -*- coding: utf-8 -*- import os import streamlit as st from streamlit_login_auth_ui.widgets import __login__ __login__obj = __login__(auth_token = os.getenv('MAIL_API_TOKEN'), company_name = "Test", width = 200, height = 250, logout_button_name = '登出', hide_menu_bool = False, hide_footer_bool = False, lottie_url = 'https://assets2.lottiefiles.com/packages/lf20_jcikwtux.json') LOGGED_IN = __login__obj.build_login_ui() if LOGGED_IN == True: st.markown("Your Streamlit Application Begins here!") start.sh内容如下: streamlit run /app/main.py 现在的情况是部署完上线以后,开启公网访问,打开网址后一直显示“Please wait...”,浏览器控制台显示“无法建立到 wss://长长的公网域名/_stcore/stream 服务器的连接。” 尝试过在streamlit run后面加--server.enableXsrfProtection=false --server.enableCORS=false --server.enableWebsocketCompression=false --browser.serverAddress=公网域名 --server.port=80 中的一个或几个都没用,当然改server.port也会对应修改EXPOSE端口号和流水线的端口号。 尝试把https改成http后访问也没用。 请问大家有什么建议或者想法吗?
07-02