本地部署 openwebui + Ollama

GPU (cuda) docker 配置

1
2
3
4
5
6
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
1
sudo apt-get install -y nvidia-container-toolkit

ollama docker 配置

1
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

docker ollama 使用

1
docker exec -it ollama ollama run 

ollama详细使用详见: Linux, ollama 配置,用法,默认路径更改,端口释放
然后docker 里面就只要加上 docker exec -it ollama 进入到沙盒里就可以一样操作了

docker compose 配置 ollama + openwebui

参考git仓库:valiantlynx/ollama-docker: Welcome to the Ollama Docker Compose Setup! This project simplifies the deployment of Ollama using Docker Compose, making it easy to run Ollama with all its dependencies in a containerized environment

项目的 Tree

比较推荐直接使用此项目,对于docker compose推荐建立一个专门的文件夹来管理不同的应用,打开这个文件夹执行:

1
2
git clone https://github.com/valiantlynx/ollama-docker.git
cd ollama-docker

此时ollama-docker文件夹下应该有两个 docker-compose文件(1个gpu版本 1个非gpu)

默认使用gpu版本,此时需要稍微修改一下配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
## docker-compose-gpu.yaml
version: '3.8'

services:
app:
build: .
ports:
- 8000:8000
- 5678:5678
volumes:
- .:/code
command: uvicorn src.main:app --host 0.0.0.0 --port 8000 --reload
restart: always
depends_on:
- ollama
- ollama-webui
networks:
- ollama-docker

ollama:
volumes:
- ./ollama/ollama:/root/.ollama
container_name: ollama
pull_policy: always
tty: true
restart: unless-stopped
image: ollama/ollama:latest
ports:
- 7869:11434
environment:
- OLLAMA_KEEP_ALIVE=24h
networks:
- ollama-docker
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]

ollama-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: ollama-webui
volumes:
- ./ollama/ollama-webui:/app/backend/data
depends_on:
- ollama
ports:
- 8080:8080
environment: # https://docs.openwebui.com/getting-started/env-configuration#default_models
- OLLAMA_BASE_URLS=http://host.docker.internal:7869 #comma separated ollama hosts
- ENV=dev
- WEBUI_AUTH=False ## 特别注意如果需要部署后能让其他人登陆访问的话,在运行前把这个设置为True
- WEBUI_NAME=<自定义你的网页名>
- WEBUI_URL=http://localhost:8080
- WEBUI_SECRET_KEY=t0p-s3cr3t
extra_hosts:
- host.docker.internal:host-gateway
restart: unless-stopped
networks:
- ollama-docker

networks:
ollama-docker:
external: false
  • WEBUI_AUTH=False ## 特别注意如果需要部署后能让其他人登陆访问的话,在运行前把这个设置为True
  • 如果已经运行了,后续想要更改,需要先删除 ./ollama/.ollama 文件
    1
    rm -rf ./ollma/.ollama

部署

简单的在配置好yaml文件后执行:

1
docker-compose -f docker-compose-ollama-gpu.yaml up -d

不加 -f (部署特定文件) 的话默认是找当前目录下:docker-compose.yml文件执行