From 5a6d03f5c85940ea060614baa9e9211a6c644bcb Mon Sep 17 00:00:00 2001 From: Vijayakanth Manoharan Date: Mon, 23 Mar 2026 14:34:07 -0400 Subject: [PATCH] Use host Ollama for Docker app runtime --- README.md | 24 ++++++++++++++++++------ docker-compose.yml | 38 +++----------------------------------- 2 files changed, 21 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 470959c..28730dd 100644 --- a/README.md +++ b/README.md @@ -32,17 +32,29 @@ ollama pull qwen3.5:9b ## Docker Compose -Start both the app and `Ollama` together: +Run the app in Docker while keeping `Ollama` on the host: ```bash docker compose up --build ``` This compose stack will: -- start `Ollama` -- pull `qwen3.5:9b` through the `ollama-init` service -- start the Next.js app on `http://localhost:3000` -- persist the SQLite database and pulled model with named Docker volumes +- start only the Next.js app on `http://localhost:3000` +- keep SQLite data in a named Docker volume +- connect to host `Ollama` through `host.docker.internal` + +Before running Docker Compose, make sure host `Ollama` is already up: + +```bash +ollama serve +ollama pull qwen3.5:9b +``` + +If you run the app outside Docker, keep using: + +```bash +OLLAMA_URL=http://127.0.0.1:11434/ +``` ## In-app helpers @@ -53,5 +65,5 @@ This compose stack will: ## Environment - `DATABASE_URL` - Prisma SQLite connection string -- `OLLAMA_URL` - local or container Ollama base URL +- `OLLAMA_URL` - Ollama base URL; in Docker Compose this defaults to `http://host.docker.internal:11434/` - `OLLAMA_MODEL` - selected model tag, default `qwen3.5:9b` diff --git a/docker-compose.yml b/docker-compose.yml index f352b7f..dc59e35 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,50 +1,18 @@ services: - ollama: - image: ollama/ollama:latest - container_name: monthytracker-ollama - ports: - - "11434:11434" - volumes: - - ollama_data:/root/.ollama - healthcheck: - test: ["CMD", "ollama", "list"] - interval: 15s - timeout: 10s - retries: 20 - start_period: 20s - - ollama-init: - image: ollama/ollama:latest - depends_on: - ollama: - condition: service_healthy - environment: - OLLAMA_HOST: http://ollama:11434 - OLLAMA_MODEL: ${OLLAMA_MODEL:-qwen3.5:9b} - entrypoint: ["/bin/sh", "-c"] - command: "ollama pull ${OLLAMA_MODEL:-qwen3.5:9b}" - volumes: - - ollama_data:/root/.ollama - restart: "no" - app: build: context: . container_name: monthytracker-app - depends_on: - ollama: - condition: service_healthy - ollama-init: - condition: service_completed_successfully environment: DATABASE_URL: file:/data/dev.db - OLLAMA_URL: http://ollama:11434/ + OLLAMA_URL: ${OLLAMA_URL:-http://host.docker.internal:11434/} OLLAMA_MODEL: ${OLLAMA_MODEL:-qwen3.5:9b} + extra_hosts: + - "host.docker.internal:host-gateway" ports: - "3000:3000" volumes: - app_data:/data volumes: - ollama_data: app_data: