使用 Docker 自动化编排 Streamlit 实现的仪表盘
实现一个基于 Docker 的自动化 Streamlit 部署环境,并记录日常维护、网络代理与故障排查流程。
FILE / 20260412-01
AUTHOR / MAGICNUE
TYPE / CODING RECORD
AUTHOR / MAGICNUE
TYPE / CODING RECORD
这次部署有两个目的:把服务器快速启动仪表盘从 VitePress Panel 改为 Streamlit,以及重新梳理 Dockerfile 与 Docker Compose 的部署流程。
01 / 项目概况与日常维护
核心逻辑是把代码与环境封装在 Docker 镜像中,同时把 config.yaml 挂载在宿主机,以便配置修改无需重新构建镜像。
当脚本或依赖发生变化时,由 Compose 重新构建并启动容器;配置文件则保留为可以直接编辑的外部状态。
02 / 镜像构建与网络
基础镜像使用 python:3.11-slim,并在构建阶段配置 Python 包镜像源。依赖版本通过 requirements.txt 固定,避免后续重建出现不可预测差异。
网络代理属于 Docker 守护进程级配置;修改后需要重新加载 systemd 并重启 Docker 服务。
docker compose up -d --build
# 修改守护进程代理后
sudo systemctl daemon-reload
sudo systemctl restart docker
03 / 故障排查
Windows 编辑产生的 CRLF 换行可能导致 entrypoint.sh 被识别为不存在;另一个常见问题是脚本缺少执行权限。
迁移后的文章阅读器保留代码块、层级标题和长文阅读宽度,同时将目录和元信息整合到抽屉式页面中。
部署文档的价值不在于记录一次成功,而在于让未来的自己可以重复成功。