Use host Ollama for Docker app runtime

This commit is contained in:
2026-03-23 14:34:07 -04:00
parent 28c5ad959f
commit 5a6d03f5c8
2 changed files with 21 additions and 41 deletions

View File

@@ -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`

View File

@@ -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: