LLM

Ollama

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
スポンサーリンク
タイトルとURLをコピーしました