# Usar la transformación por defecto de Compose Bridge





Compose Bridge incluye una transformación incorporada que convierte automáticamente tu configuración de Compose en un conjunto de manifiestos de Kubernetes.

Basándose en tu archivo `compose.yaml`, produce:

- Un [Namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/) para que todos tus recursos estén aislados y no entren en conflicto con recursos de otros despliegues.
- Un [ConfigMap](https://kubernetes.io/docs/concepts/configuration/configmap/) con una entrada para todos y cada uno de los recursos de [configuración](/reference/compose-file/configs/) en tu aplicación de Compose.
- [Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) para los servicios de la aplicación. Esto garantiza que se mantenga el número especificado de instancias de tu aplicación en el clúster de Kubernetes.
- [Services](https://kubernetes.io/docs/concepts/services-networking/service/) para los puertos expuestos por tus servicios, utilizados para la comunicación entre servicios.
- [Services](https://kubernetes.io/docs/concepts/services-networking/service/) para los puertos publicados por tus servicios, con el tipo `LoadBalancer` para que Docker Desktop también exponga el mismo puerto en el host.
- [Network policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/) para replicar la topología de red definida en tu archivo `compose.yaml`.
- [PersistentVolumeClaims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) para tus volúmenes, utilizando la clase de almacenamiento `hostpath` para que Docker Desktop gestione la creación de volúmenes.
- [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/) con tus secretos codificados. Esto está diseñado para uso local en un entorno de pruebas.

También proporciona una capa (overlay) de Kustomize dedicada a Docker Desktop con:

- `LoadBalancer` para los servicios que necesitan exponer puertos en el host.
- Una `PersistentVolumeClaim` para usar el proveedor de almacenamiento de Docker Desktop `desktop-storage-provisioner` a fin de gestionar el aprovisionamiento de volúmenes de manera más eficaz.
- Un archivo `kustomization.yaml` para vincular todos los recursos.

Si tu archivo de Compose define una sección `models` para un servicio, Compose Bridge configura automáticamente tu despliegue para que el servicio pueda localizar y utilizar sus modelos a través de Docker Model Runner.

Para cada modelo declarado, la transformación inyecta dos variables de entorno:

- `<MODELNAME>_URL`: El punto de enlace (endpoint) para el Docker Model Runner que sirve ese modelo
- `<MODELNAME>_MODEL`: El nombre o identificador del modelo

De manera opcional, puedes personalizar estos nombres de variables utilizando `endpoint_var` y `model_var`.

La transformación por defecto genera dos capas (overlays) diferentes: una para Docker Desktop mientras se utiliza una instancia local de Docker Model Runner, y una capa `model-runner` con todos los recursos de Kubernetes pertinentes para desplegar Docker Model Runner en un pod.

| Entorno        | Punto de enlace (Endpoint)                      |
| -------------- | ----------------------------------------------- |
| Docker Desktop | `http://host.docker.internal:12434/engines/v1/` |
| Kubernetes     | `http://model-runner/engines/v1/`               |

Para obtener más detalles, consulta [Usar Model Runner](/compose/bridge/usage/use-model-runner/).

## Usa la transformación por defecto de Compose Bridge

Para convertir tu archivo de Compose usando la transformación por defecto:

```console
$ docker compose bridge convert
```

Compose busca un archivo `compose.yaml` dentro del directorio actual y genera los manifiestos de Kubernetes.

Ejemplo de salida:

```console
$ docker compose -f compose.yaml bridge convert
Kubernetes resource backend-deployment.yaml created
Kubernetes resource frontend-deployment.yaml created
Kubernetes resource backend-expose.yaml created
Kubernetes resource frontend-expose.yaml created
Kubernetes resource 0-my-project-namespace.yaml created
Kubernetes resource default-network-policy.yaml created
Kubernetes resource backend-service.yaml created
Kubernetes resource frontend-service.yaml created
Kubernetes resource kustomization.yaml created
Kubernetes resource backend-deployment.yaml created
Kubernetes resource frontend-deployment.yaml created
Kubernetes resource backend-service.yaml created
Kubernetes resource frontend-service.yaml created
Kubernetes resource kustomization.yaml created
Kubernetes resource model-runner-configmap.yaml created
Kubernetes resource model-runner-deployment.yaml created
Kubernetes resource model-runner-service.yaml created
Kubernetes resource model-runner-volume-claim.yaml created
Kubernetes resource kustomization.yaml created
```

Todos los archivos generados se almacenan en el directorio `/out` de tu proyecto.

## Despliega los manifiestos generados

> [!IMPORTANT]
>
> Antes de desplegar tus transformaciones de Compose Bridge, asegúrate de tener [Kubernetes habilitado](/desktop/settings-and-maintenance/settings/#kubernetes) en Docker Desktop.

Una vez generados los manifiestos, despliégalos en tu clúster de Kubernetes local:

```console
$ kubectl apply -k out/overlays/desktop/
```

> [!TIP]
>
> Puedes convertir y desplegar tu proyecto de Compose en un clúster de Kubernetes desde el visor de archivos de Compose.
>
> Asegúrate de haber iniciado sesión en tu cuenta de Docker, ve a tu contenedor en la vista **Containers** (Contenedores) y, en la esquina superior derecha, selecciona **View configurations** (Ver configuraciones) y luego **Convert and Deploy to Kubernetes** (Convertir y desplegar en Kubernetes).

## Comandos adicionales

Convertir un archivo `compose.yaml` ubicado en otro directorio:

```console
$ docker compose -f <path-to-file>/compose.yaml bridge convert
```

Para ver todas las banderas (flags) disponibles, ejecuta:

```console
$ docker compose bridge convert --help
```

## ¿Qué sigue?

- [Explorar cómo puedes personalizar Compose Bridge](/compose/bridge/usage/customize/)
- [Usar Model Runner](/compose/bridge/usage/use-model-runner/).

