Docker 连接外部 Ollama
当 Ollama 已在宿主机、其他服务器或 Tailscale/LAN 设备上运行时,请使用此配置。
Work 可用性
此 Compose 配置只会改变 Ollama 的运行位置;Work 仍通过挂载宿主机 Docker 套接字启用。该挂载向 Libre WebUI 授予等同 root 的 Docker 宿主机控制权,因此只能在 Libre WebUI 管理员同时也是可信宿主机管理员的环境中使用。Linux 上应在 .env 中将 DOCKER_GID 设为套接字所属组。不需要 Work 时请移除挂载。参阅 Work:隔离工作区。
前提条件
确认 Ollama 可访问:
curl http://localhost:11434/api/version
若实例为新建,请拉取模型:
ollama pull gemma4:12b
启动 Libre WebUI
在仓库根目录运行:
docker compose -f docker-compose.external-ollama.yml up -d
Compose 文件默认将 OLLAMA_BASE_URL 指向 http://host.docker.internal:11434。
自定义 Ollama URL
使用其他主机:
OLLAMA_BASE_URL=http://192.168.1.100:11434 docker compose -f docker-compose.external-ollama.yml up -d
若 Linux 宿主机无法解析 host.docker.internal,请向服务添加:
extra_hosts:
- 'host.docker.internal:host-gateway'
数据持久化
Compose 文件将 Libre WebUI 数据存储在 Docker 卷中:
libre_webui_datalibre_webui_temp
为生产环境设置稳定密钥:
JWT_SECRET=replace-with-a-long-random-secret
ENCRYPTION_KEY=replace-with-64-hex-characters
数据卷与加密密钥必须一同备份。
网络访问
仓库 Compose 文件当前直接设置了 CORS_ORIGIN。shell 或 .env 中的值不会替换该字面值。请修改 libre-webui.environment 条目,或添加显式 Compose 覆盖,例如 compose.origin.yml:
services:
libre-webui:
environment:
CORS_ORIGIN: http://localhost:8080,http://192.168.1.50:8080
BASE_URL: http://192.168.1.50:8080
同时应用两个文件:
docker compose \
-f docker-compose.external-ollama.yml \
-f compose.origin.yml \
up -d
使用公共域名时,请为两个值使用完全一致的 HTTPS 源,并通过 HTTPS 终止流量。
常用命令
docker compose -f docker-compose.external-ollama.yml ps
docker compose -f docker-compose.external-ollama.yml logs -f libre-webui
docker compose -f docker-compose.external-ollama.yml restart
docker compose -f docker-compose.external-ollama.yml pull
docker compose -f docker-compose.external-ollama.yml up -d
故障排除
Libre WebUI 无法访问 Ollama
docker compose -f docker-compose.external-ollama.yml exec libre-webui \
wget -O- http://host.docker.internal:11434/api/version
若失败,请在 OLLAMA_BASE_URL 中使用明确的 LAN/Tailscale IP。
模型未显示
检查 Ollama 主机:
ollama list
模型管理器从已配置的 Ollama 实例读取数据。
CORS 错误
确保 CORS_ORIGIN 与浏览器源完全一致,包括协议和端口。