Repositorio Docker público

Convierte cualquier contenedor en una máquina Cmdop.

Dos líneas en el Dockerfile que ya tienes. Tu aplicación conserva el PID 1; el agente viaja con ella.

A Docker deployment contains the CMDOP relay, editable project files and Git history while remote machines connect outbound
Dockerfile
FROM your-image                                    # unchanged
COPY --from=markolofsen/cmdop:latest /cmdop /usr/local/bin/cmdop
ENTRYPOINT ["cmdop", "sidecar", "--"]
CMD ["your-app", "--your", "flags"]                # unchanged

Tu imagen base y tu comando no cambian.

Cmdop se entrega como un único binario.

El plano de control llega con el contenedor en lugar de esperarlo en otro sitio.

  • Sin servidor de base de datos
  • Sin Redis
  • Sin broker de mensajes
  • Sin servicio backend
  • Sin aplicación web que desplegar al lado

Copia un archivo en tu imagen. Ese mismo binario es el agente de máquina, el relay al que se unen otras máquinas, la consola del navegador, el host del terminal y el runtime de IA: todo depende de cómo lo invoques.

Un solo sistema de productos

Empieza con una máquina. Crece hasta una flota.

Un agente por contenedor, no un demonio por host.

Un agente compartido en el host acumula el estado operativo de todos los contenedores, necesita acceso a cada uno y acaba siendo infraestructura por su cuenta. Un agente que viaja dentro de la imagen, no.

Alcance
Demonio en el host: Todos los contenedores de la máquina
Cmdop en el contenedor: Su propio contenedor y nada más
Acceso
Demonio en el host: Socket de Docker o privilegios del host
Cmdop en el contenedor: Solo lo que el contenedor ya tiene
Ciclo de vida
Demonio en el host: Se instala, actualiza y monitoriza por separado
Cmdop en el contenedor: Arranca y para con el contenedor
Estado operativo
Demonio en el host: Compartido entre todo lo que gestiona
Cmdop en el contenedor: Aislado en cada contenedor
Escalado
Demonio en el host: Un solo agente debe seguir el ritmo de toda la flota
Cmdop en el contenedor: La operabilidad se replica con tu imagen

Tu proceso sigue siendo el dueño del contenedor.

cmdop sidecar arranca el agente en segundo plano y luego hace exec de tu comando. Tu aplicación pasa a ser PID 1, así que docker stop, las señales, los códigos de salida y las políticas de reinicio se comportan igual que antes.

Docker starts the cmdop sidecar entrypoint, which execs the application so it runs as PID 1 and receives SIGTERM directly, while the Cmdop agent runs beside it in the background and connects outbound to a relay elsewhere

El PID 1 es tuyo

El agente es un hijo en segundo plano. Docker señaliza directamente a tu proceso, y su código de salida es el del contenedor.

Un agente que falla no es una caída

Si el agente no arranca o no alcanza el relay, tu aplicación sigue funcionando. Sin un join key configurado, sidecar es un exec normal.

Solo salida

Es el contenedor quien llama al relay. No se abre ningún puerto de entrada ni hace falta ninguna regla de ingress.

Cualquier imagen base

El binario no enlaza libc, así que Alpine, Debian, distroless y scratch funcionan igual.

Qué puede hacer la máquina una vez conectada.

Terminal

Abre una shell dentro del contenedor en marcha desde el navegador, la CLI o el móvil.

Acceso a archivos

Lee, compara y edita los archivos del contenedor, limitado al directorio al que apuntes el agente.

Operaciones de IA

Pide a un agente que inspeccione, cambie, ejecute o depure lo que hay dentro del contenedor.

Ejecución remota

Lanza comandos y reparte trabajo entre máquinas desde cualquier superficie de Cmdop.

Un contenedor y, después, una flota.

La misma imagen corre en tu portátil, en Compose y allí donde ya ejecutas contenedores. Arranca quinientos y tendrás quinientos agentes independientes, porque la operabilidad es una propiedad de la imagen y no algo que despliegas a su lado.

  1. Un contenedor
  2. Una máquina en la flota
  3. Una flota que puedes operar

Luego dale el join key de la flota.

Construye la imagen y pasa la dirección del relay y el join key como variables de entorno. La máquina aparece en tu flota al arrancar, y no hay nada más que configurar.

El repositorio público trae un Dockerfile de quince líneas sobre una app Node corriente: las variables, qué evita cada una y un contenedor que puedes arrancar ahora mismo.

Inside the Docker deployment, an editable project folder flows into verified output and then into Git history
El banco de pruebas

Mira el ciclo entero antes de comprometerte.

La demo pública es un montaje mayor a propósito: aloja su propio relay, monta un proyecto escribible y levanta un servidor de desarrollo, para que veas a un agente editar una aplicación real y dejar el cambio en el historial de Git.

Enseña lo que Cmdop puede hacer de principio a fin. Añadir el agente a un contenedor que ya es tuyo siguen siendo dos líneas.

Dos líneas, y el contenedor es tuyo para operarlo.

Añade el binario a una imagen que ya distribuyes, o clona el ejemplo y observa cómo una máquina se une.