# Use Docker Model Runner con Compose Bridge


Compose Bridge admite despliegues orientados a modelos. Puede desplegar y configurar Docker Model Runner, un servicio ligero que aloja y sirve LLMs de aprendizaje automático (machine learning).

Esto reduce la configuración manual para servicios habilitados para LLM y mantiene los despliegues consistentes en entornos de Docker Desktop y Kubernetes.

Si tienes un elemento de nivel superior `models` en tu archivo `compose.yaml`, Compose Bridge:

- Inyecta automáticamente variables de entorno para el punto de enlace (endpoint) y el nombre de cada modelo.
- Configura los puntos de enlace de los modelos de manera diferente para Docker Desktop frente a Kubernetes.
- Despliega opcionalmente Docker Model Runner en Kubernetes cuando se habilita en los valores de Helm.

## Configura los ajustes de Model Runner

Al realizar el despliegue utilizando los Helm Charts generados, puedes controlar la configuración de Model Runner a través de los valores de Helm.

```yaml
# Ajustes de Model Runner
modelRunner:
  # Establecer en false para Docker Desktop (utiliza la instancia del host)
  # Establecer en true para clústeres de Kubernetes independientes
  enabled: false
  # Punto de enlace utilizado cuando enabled=false (Docker Desktop)
  hostEndpoint: "http://host.docker.internal:12434/engines/v1/"
  # Ajustes de despliegue cuando enabled=true
  image: "docker/model-runner:latest"
  imagePullPolicy: "IfNotPresent"
  # Soporte de GPU
  gpu:
    enabled: false
    vendor: "nvidia" # nvidia o amd
    count: 1
  # Programación de nodos (descomentar y personalizar según sea necesario)
  # nodeSelector:
  #   accelerator: nvidia-tesla-t4
  # tolerations: []
  # affinity: {}

  # Contexto de seguridad
  securityContext:
    allowPrivilegeEscalation: false
  # Variables de entorno (descomentar y añadir según sea necesario)
  # env:
  #   DMR_ORIGINS: "http://localhost:31246"
  resources:
    limits:
      cpu: "1000m"
      memory: "2Gi"
    requests:
      cpu: "100m"
      memory: "256Mi"
  # Almacenamiento para modelos
  storage:
    size: "100Gi"
    storageClass: "" # Dejar vacío para usar la clase de almacenamiento por defecto
  # Modelos a descargar previamente (pre-pull)
  models:
    - ai/qwen2.5:latest
    - ai/mxbai-embed-large
```

## Despliegue de un Model Runner

### Docker Desktop

Cuando `modelRunner.enabled` es `false`, Compose Bridge configura tus cargas de trabajo para conectarse a Docker Model Runner ejecutándose en el host:

```text
http://host.docker.internal:12434/engines/v1/
```

El punto de enlace se inyecta automáticamente en los contenedores de tus servicios.

### Kubernetes

Cuando `modelRunner.enabled` es `true`, Compose Bridge utiliza los manifiestos generados para desplegar Docker Model Runner en tu clúster, incluyendo:

- Deployment: Ejecuta el contenedor `docker-model-runner`.
- Service: Expone el puerto `80` (se mapea al puerto `12434` del contenedor).
- `PersistentVolumeClaim`: Almacena los archivos del modelo.

La configuración `modelRunner.enabled` también determina el número de réplicas para el `model-runner-deployment`:

- Cuando es `true`, el número de réplicas del despliegue se establece en 1 y Docker Model Runner se despliega en el clúster de Kubernetes.
- Cuando es `false`, el número de réplicas es 0 y no se despliega ningún recurso de Docker Model Runner.

