尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Open WebUI 如何用 docker-update-models.sh 同步 Ollama 容器中已安装模型的最新版本

Open WebUI 如何用 docker-update-models.sh 同步 Ollama 容器中已安装模型的最新版本 Open WebUI 如何用 docker-update-models.sh 同步 Ollama 容器中已安装模型的最新版本【免费下载链接】open-webuiUser-friendly AI Interface (Supports Ollama, OpenAI API, ...)项目地址: https://gitcode.com/GitHub_Trending/op/open-webui如果你的 Open WebUI 部署通过 Docker 运行并配套了一个独立的 Ollama 容器来托管本地模型那么随着上游发布新版模型权重容器里已安装的模型会停留在旧版本。仓库根目录提供的 docker-update-models.sh 就是用来解决这个问题的一次性脚本它读取 Ollama 容器中已安装的模型列表对每个模型执行ollama pull把它们同步到最新版本。这篇文章说明运行它的前提、命令和如何判断执行结果。前提脚本如何找到 Ollama 容器脚本本身不包含任何镜像或下载地址它只做两件事见 docker-update-models.sh 第 11、21 行models$(docker exec $CONTAINER ollama list | tail -n 2 | awk {print $1}) docker exec $CONTAINER ollama pull $model由此得出两个硬性前提运行脚本的机器上必须安装 Docker CLI并且脚本对ollama子命令有执行权限即你本机能docker exec进入该容器一个 Ollama 容器必须处于运行状态。脚本第 8 行通过环境变量定位容器名readonly CONTAINER${OLLAMA_CONTAINER:-ollama}也就是默认容器名为ollama可通过OLLAMA_CONTAINER覆盖。这与仓库自带 docker-compose.yaml 中的定义一致ollama服务显式设置了container_name: ollama镜像为ollama/ollama:${OLLAMA_DOCKER_TAG-latest}模型数据存放在命名卷ollama:/root/.ollamaOpen WebUI 一侧通过OLLAMA_BASE_URLhttp://ollama:11434连接它。所以只要你用docker compose up -d启动过这份 compose 文件容器名就与脚本默认值吻合无需任何额外配置。另外注意脚本头部是set -euo pipefail任何一步取列表或某个pull失败脚本会立即终止并以非零状态码退出不会继续处理后面的模型。执行模型同步进入仓库根目录后运行bash docker-update-models.sh如果脚本文件没有执行权限也可以用./docker-update-models.sh但需先chmod x docker-update-models.sh用bash直接调用则不需要这一步。如果你的 Ollama 容器不叫ollama例如用了其他 compose 文件或手工docker run起了别的名字在命令前设置环境变量OLLAMA_CONTAINERmy-ollama bash docker-update-models.sh副作用范围脚本只通过docker exec在容器内执行ollama list和ollama pull会触发模型文件从上游下载到容器的/root/.ollama数据目录不删除、不重建任何容器也不改动 Open WebUI 容器。如何判断执行结果脚本的输出就是它的执行状态均为脚本源码中固定的打印语句开始时打印Fetching installed models from ollama container...容器名以实际取值显示容器中没有安装任何模型时打印No models found.并以状态码 0 正常结束正常情况对每个模型打印一行Pulling 模型名...全部完成后打印All models updated.。由于set -euo pipefail的存在只要某个模型的pull失败脚本会停在该模型处而非打印最后一句。可以用脚本自己使用的那条列表命令复核容器内的模型docker exec ollama ollama list容器名不同时替换为实际名称与OLLAMA_CONTAINER的取值保持一致。与 Makefile 中 update 目标的区别Makefile 里也有一个update目标但它做的是整栈更新执行git pull、docker compose down、重新构建并docker compose up --build -d其调用的update_ollama_models.sh并不在当前仓库中。也就是说make update是更新 Open WebUI 本身的复合流程而不是只同步 Ollama 模型的路径两者不要混用。若只关心模型版本本文的docker-update-models.sh才是对应入口。可选还没有 Ollama 容器时的准备方式如果 Ollama 容器尚不存在有两条仓库内提供的启动路径二选一使用 docker-compose.yamldocker compose up -d这会同时启动ollama与open-webui两个服务模型卷为ollama:/root/.ollama。使用 docker-ollama.sh 单独准备 Ollama 容器。注意它的副作用脚本会交互式询问是否启用 GPU 直通y时追加--gpusall启动前会docker rm -f ollama删除已存在的同名容器并在最后执行docker image prune -f清理悬空镜像模型数据挂载在-v ollama:/root/.ollama端口默认11434可用OLLAMA_PORT修改。容器准备好并在其中安装了模型之后再按前文运行bash docker-update-models.sh即可完成同步。【免费下载链接】open-webuiUser-friendly AI Interface (Supports Ollama, OpenAI API, ...)项目地址: https://gitcode.com/GitHub_Trending/op/open-webui创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表