version: '3.6'

services:
  ollama:
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities:
                - gpu
    volumes:
      - ollama:/root/.ollama
    # Uncomment below to expose Ollama API outside the container stack
    ports:
      - 11434:11434
    pull_policy: always
    tty: true
    restart: "no"
    image: ollama/ollama:latest

  ollama-webui:
    build:
      context: ./ollama-webui
      args:
        OLLAMA_API_BASE_URL: '/ollama/api'
      dockerfile: Dockerfile
    image: reg.reaweb.uk/ollama-webui
    depends_on:
      - ollama
    ports:
      - 3000:8080
    environment:
      - "OLLAMA_API_BASE_URL=http://ollama:11434/api"
    extra_hosts:
      - host.docker.internal:host-gateway
    restart: "no"

  whisper-asr-webservice-gpu:
    build:
      context: ./whisper-asr-webservice
      dockerfile: Dockerfile.gpu
    image: reg.reaweb.uk/whisper-web
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]
    environment:
      - ASR_MODEL=base.en
      - ASR_ENGINE=openai_whisper
    ports:
      - "9000:9000"
    volumes:
      - ./whisper-asr-webservice/app:/app/app
      - cache-pip:/root/.cache/pip
      - cache-poetry:/root/.cache/poetry
      - cache-whisper:/root/.cache/whisper
    restart: "no"

volumes:
  ollama:
  cache-pip:
  cache-poetry:
  cache-whisper:
  cache-faster-whisper: