You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署Streamlit LangGraph应用遇Runtime Error与权限问题

Docker部署Streamlit+LangGraph应用时RuntimeError问题解决方案

问题核心原因

错误的直接触发点是非特权用户appuser的主目录设为/nonexistent,Streamlit启动时会尝试写入该目录存储安装ID等元数据,触发PermissionError: [Errno 13] Permission denied: '/nonexistent',进而引发异步事件循环异常,表现为RuntimeError: no running event loop。

解决方案

两种可行修复方式,任选其一即可:

方式1:为appuser创建可写主目录

修改Dockerfile中创建用户的步骤,移除--home "/nonexistent"和--no-create-home参数,确保用户拥有可写的主目录:

ARG UID=10001
RUN adduser \
    --disabled-password \
    --gecos "" \
    --shell "/sbin/nologin" \
    --uid "${UID}" \
    appuser
# 确保用户对主目录拥有完整权限
RUN chown -R appuser:appuser /home/appuser

方式2:指定Streamlit配置目录到有权限路径

无需修改用户主目录,通过环境变量让Streamlit将配置文件写入/app下的可写目录:
在Dockerfile的USER appuser指令之前添加以下内容:

# 自定义Streamlit配置存储目录
ENV STREAMLIT_CONFIG_HOME=/app/.streamlit
# 创建目录并赋予appuser权限
RUN mkdir -p /app/.streamlit && chown -R appuser:appuser /app/.streamlit

验证步骤

  1. 保存修改后的Dockerfile
  2. 重新构建镜像并启动容器:
docker-compose up --build
  1. 访问http://localhost:8501,确认应用正常加载,无运行时错误。

内容的提问来源于stack exchange,提问作者tanvir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 04:14:51