#version: '3.8' services: llama-swap: container_name: llamaswap image: ghcr.io/mostlygeek/llama-swap:vulkan restart: unless-stopped pull_policy: always network_mode: host privileged: true shm_size: '32gb' volumes: # Novo mapeamento unificado de cache (compatível com HF migration) - /home/lvivas/Modelos/models:/root/.cache # Acesso às gramáticas para o orquestrador validar os caminhos - /home/lvivas/Modelos/grammar:/tmp/grammar # Configurações do projeto - ./config:/config # Comunicação com o Docker Host (indispensável) - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker # Cache de contexto compartilhado - /tmp/cache_file:/tmp/cache_file environment: # Opcional: Garante que o orquestrador saiba onde procurar as coisas - XDG_CACHE_HOME=/root/.cache devices: - /dev/dri:/dev/dri - /dev/accel/accel0:/dev/accel/accel0 group_add: - "44" - "991" cap_add: - SYS_ADMIN - SYS_RAWIO - IPC_LOCK - SYS_RESOURCE ulimits: memlock: -1 stack: 67108864 entrypoint: /app/llama-swap -config /config/config.yaml --listen :65000 healthcheck: test: ["CMD", "curl", "-f", "http://localhost:65000/"] interval: 30s timeout: 10s retries: 3 # ESTE BLOCO DEVE ESTAR ALINHADO COM O llama-swap: watch-config: image: docker:latest container_name: llamaswap-watcher restart: unless-stopped volumes: - ./config:/config - /home/lvivas/Modelos/models:/root/.cache - /var/run/docker.sock:/var/run/docker.sock - /tmp/cache_file:/tmp/cache_file # O entrypoint garante que o script tenha permissão antes de rodar entrypoint: ["sh", "-c", "chmod +x /config/watch-config.sh && /config/watch-config.sh"]