55 lines
1.5 KiB
YAML
55 lines
1.5 KiB
YAML
version: "3.9"
|
|||
|
|
|
||
|
|
services:
|
||
|
|
ollama:
|
||
|
|
image: ollama/ollama:0.4.2
|
||
|
|
container_name: aimnote-ollama
|
||
|
|
restart: unless-stopped
|
||
|
|
ports:
|
||
|
|
- "${OLLAMA_PORT:-11434}:11434"
|
||
|
|
volumes:
|
||
|
|
- ollama_data:/root/.ollama
|
||
|
|
environment:
|
||
|
|
# 为了让模型常驻内存,否则频繁调度时会被逐出
|
||
|
|
- OLLAMA_KEEP_ALIVE=${OLLAMA_KEEP_ALIVE:-24h}
|
||
|
|
healthcheck:
|
||
|
|
test: ["CMD", "curl", "-f", "http://127.0.0.1:11434/api/version"]
|
||
|
|
interval: 30s
|
||
|
|
timeout: 10s
|
||
|
|
retries: 5
|
||
|
|
deploy:
|
||
|
|
resources:
|
||
|
|
reservations:
|
||
|
|
devices:
|
||
|
|
- capabilities: ["gpu"]
|
||
|
|
count: "${OLLAMA_GPU_COUNT:-0}"
|
||
|
|
limits:
|
||
|
|
cpus: "${OLLAMA_CPU_LIMIT:-4}"
|
||
|
|
memory: "${OLLAMA_MEMORY_LIMIT:-16g}"
|
||
|
|
|
||
|
|
ollama-model-init:
|
||
|
|
image: curlimages/curl:8.11.1
|
||
|
|
container_name: aimnote-ollama-init
|
||
|
|
depends_on:
|
||
|
|
ollama:
|
||
|
|
condition: service_started
|
||
|
|
restart: "no"
|
||
|
|
entrypoint: ["/bin/sh", "-c"]
|
||
|
|
# 通过 OpenAI 兼容 API 主动预拉取 qwen3-embedding 与 qwen2.5
|
||
|
|
command: |
|
||
|
|
until curl -fsS http://ollama:11434/api/version >/dev/null 2>&1; do
|
||
|
|
echo "等待 Ollama 服务启动..."
|
||
|
|
sleep 2
|
||
|
|
done
|
||
|
|
for model in "qwen3-embedding:8b" "qwen2.5:14b"; do
|
||
|
|
echo "准备拉取 $model"
|
||
|
|
curl -fsS -X POST http://ollama:11434/api/pull \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d "{\"name\":\"$model\"}" || exit 1
|
||
|
|
done
|
||
|
|
echo "模型拉取完成"
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
ollama_data:
|
||
|
|
driver: local
|