services:
# -------------------------------------------------------------------
# 1. Ollama サービス (LLM & Embedding)
# -------------------------------------------------------------------
ollama:
image: ollama/ollama:latest
container_name: ollama-container
ports:
- "11434:11434"
volumes:
- ./ollama_data:/root/.ollama
# ※ もしNVIDIA製GPUを積んだPCで、Rancher DesktopがGPUに対応している場合は以下を有効化してください
# deploy:
# resources:
# reservations:
# devices:
# - driver: nvidia
# count: all
# capabilities: [gpu]
# -------------------------------------------------------------------
# 2. モデル自動ダウンロード用サービス(起動時に1回だけ実行)
# -------------------------------------------------------------------
ollama-model-puller:
image: curlimages/curl:latest
container_name: ollama-model-puller
depends_on:
- ollama
entrypoint: [ "/bin/sh", "-c" ]
command:
- |
echo "Waiting for Ollama to start..."
while ! curl -s http://ollama:11434/api/tags > /dev/null; do sleep 2; done
echo "Pulling gemma2:9b (Keyword Extraction)..."
curl -X POST http://ollama:11434/api/pull -d '{"name": "gemma2:9b"}'
echo "\nPulling mxbai-embed-large (Embedding)..."
curl -X POST http://ollama:11434/api/pull -d '{"name": "mxbai-embed-large"}'
echo "\nAll models pulled successfully!"
# -------------------------------------------------------------------
# 3. PostgreSQL サービス (pgvector + PL/Python 入り)
# -------------------------------------------------------------------
postgres-vector:
# image指定をやめて、その場でパッケージを追加したイメージをビルドします
build:
context: .
dockerfile: Dockerfile.postgres
container_name: postgres-vector-container
ports:
- "5432:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password123
POSTGRES_DB: system_support_db
volumes:
- ./postgres_data:/var/lib/postgresql/data