fcori47 / basdonax-ai-rag

121 stars 58 forks source link

Problema en Ubuntu 22.04 debido a versión de docker (host.docker.internal no funciona en 22.04) #5

Closed ElAbuelo2 closed 1 month ago

ElAbuelo2 commented 2 months ago

Primero que nada, decir que escribo más para compartir la solución temporal que para pedir que lo arreglen.

Si tratan de hacer docker-compose up -d en Ubuntu 22.04, parecerá que todo funciona bien, hasta que le escriben "Hola" en el chat de la interfaz web. Entonces saldrá un error similar al siguiente:

/api/v1/collections (Caused by NameResolutionError("<urllib3.connection.HTTPConnection object at 0x7d0c42875f90>: Failed to resolve 'host.docker.internal'

La clave para encontrar una solución temporal fueron los términos NameResolutionError y 'host.docker.internal'. Muchos proyectos de github tienen Issues con estos términos, y la conclusión a la que suelen llegar, es que Ubuntu no soporta 'host.docker.internal', por alguna extraña razón.

La solución temporal es, entonces, agregar extra_hosts: - "host.docker.internal:host-gateway" al final de los servicios chroma y ui, en el archivo docker-compose.yml. Debe quedar así:

version: '3.6'

services:
    ollama: 
      image: ollama/ollama:latest
      volumes:
        - /ollama/models:/ollama/models
      environment:
        - OLLAMA_MODELS=/ollama/models

    chroma:
      image: chromadb/chroma:latest
      volumes:
        - index_data:/chroma/.chroma/index
      ports:
        - 8000:8000
      networks:
        - net
      extra_hosts:
        - "host.docker.internal:host-gateway"

    ui:
      build: ./app
      ports:
        - 8080:8080
      volumes:
        - ./app:/app
      depends_on:
        - ollama
        - chroma
      environment:
        - MODEL=phi3
        - EMBEDDINGS_MODEL_NAME=all-MiniLM-L6-v2
        - TARGET_SOURCE_CHUNKS=5
      extra_hosts:
        - "host.docker.internal:host-gateway"

volumes:
  index_data:

networks:
  net:

De esta manera, "mapeamos" host.docker.internal a host-gateway, que sí funciona en Ubuntu.

Si yo entiendo bien lo que está ocurriendo aquí, la culpa es de Ubuntu, y no de este proyecto. Por lo que esto no debería ser integrado como parche jamás. Basta con dejarlo aquí para las personas que usen Ubuntu 22.04.

fcori47 commented 1 month ago

gracias por comentarlo!