haiku.rag/examples/docker/docker-compose.yml
2026-05-26 11:44:45 +03:00

74 lines
2 KiB
YAML

services:
docling-serve:
image: quay.io/docling-project/docling-serve:latest
container_name: docling-serve
ports:
- "5001:5001"
environment:
- DOCLING_SERVE_ENABLE_UI=1
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5001/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
start_interval: 5s
# LanceDB allows one writer + N readers per database URI; the ingester is
# the writer, MCP runs read-only.
haiku-ingester:
build:
context: ../..
dockerfile: docker/Dockerfile.slim
image: haiku-rag-slim:local
container_name: haiku-ingester
command:
[
"haiku-ingester",
"--config",
"/app/haiku.rag.yaml",
"serve",
]
ports:
- "8765:8765" # ingester control plane (/health, /jobs, /sources, /dlq)
volumes:
- ./data:/data
- ./docs:/docs # Documents directory ingested by the FS source
- ./haiku.rag.yaml:/app/haiku.rag.yaml:ro
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- VOYAGE_API_KEY=${VOYAGE_API_KEY}
- CO_API_KEY=${CO_API_KEY}
depends_on:
docling-serve:
condition: service_healthy
restart: unless-stopped
haiku-rag:
image: haiku-rag-slim:local
container_name: haiku-rag
command:
[
"haiku-rag",
"--config",
"/app/haiku.rag.yaml",
"--read-only",
"mcp",
"--port",
"8001",
]
ports:
- "8001:8001" # MCP server (read-only against the same LanceDB)
volumes:
- ./data:/data # Shared with the ingester (read-only at this process)
- ./haiku.rag.yaml:/app/haiku.rag.yaml:ro
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- VOYAGE_API_KEY=${VOYAGE_API_KEY}
- CO_API_KEY=${CO_API_KEY}
depends_on:
- haiku-ingester
restart: unless-stopped