services: ollama: image: ollama/ollama container_name: ollama ports: - "11436:11434" volumes: - /mnt/ssd/ai/ollama:/root/.ollama restart: always environment: # Allow qwen3:8b + qwen2.5:1.5b to coexist in VRAM (~6.7-7.7 GB on 8 GB GPU) - OLLAMA_MAX_LOADED_MODELS=2 # One GPU inference at a time — prevents compute contention between models - OLLAMA_NUM_PARALLEL=1 # Force all layers to GPU — fail instead of falling back to CPU - OLLAMA_NUM_GPU=999 runtime: nvidia mem_limit: 4g # kb#190: `ollama list` just queries the local server's model registry -- # no model load/inference, cheap. This is a SEPARATE compose project from # openai/docker-compose.yml (reached from there via # host.docker.internal:11436), so it cannot be wired into that file's # depends_on/condition chain -- this only gives it its own status. healthcheck: test: ["CMD-SHELL", "ollama list || exit 1"] interval: 15s timeout: 10s retries: 5 start_period: 20s