Dépôt Docker public

Transformez n’importe quel conteneur en machine Cmdop.

Deux lignes dans le Dockerfile que vous avez déjà. Votre application garde le PID 1 ; l’agent voyage avec elle.

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

Votre image de base et votre commande restent inchangées.

Cmdop tient dans un seul binaire.

Le plan de contrôle arrive avec le conteneur au lieu de l’attendre ailleurs.

  • Aucun serveur de base de données
  • Aucun Redis
  • Aucun broker de messages
  • Aucun service backend
  • Aucune application web à déployer à côté

Copiez un fichier dans votre image. Ce même binaire est l’agent machine, le relay que rejoignent les autres machines, la console navigateur, l’hôte du terminal et le runtime IA — tout dépend de la façon dont vous l’invoquez.

Un seul système produit

Commencez avec une machine. Passez ensuite à une flotte.

Un agent par conteneur, pas un démon par hôte.

Un agent partagé sur l’hôte accumule l’état opérationnel de tous les conteneurs, exige un accès à chacun d’eux et devient lui-même une infrastructure. Un agent embarqué dans l’image, non.

Portée
Démon sur l’hôte: Tous les conteneurs de la machine
Cmdop dans le conteneur: Son propre conteneur, et rien d’autre
Accès
Démon sur l’hôte: Socket Docker ou privilèges de l’hôte
Cmdop dans le conteneur: Uniquement ce que le conteneur possède déjà
Cycle de vie
Démon sur l’hôte: Installé, mis à jour et supervisé séparément
Cmdop dans le conteneur: Démarre et s’arrête avec le conteneur
État opérationnel
Démon sur l’hôte: Partagé entre tout ce qu’il gère
Cmdop dans le conteneur: Isolé pour chaque conteneur
Mise à l’échelle
Démon sur l’hôte: Un seul agent doit suivre toute la flotte
Cmdop dans le conteneur: La gérabilité se réplique avec votre image

Votre processus reste maître du conteneur.

cmdop sidecar démarre l’agent en arrière-plan, puis fait un exec de votre commande. Votre application devient PID 1, donc docker stop, les signaux, les codes de sortie et les politiques de redémarrage se comportent exactement comme avant.

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

Le PID 1 est à vous

L’agent est un processus enfant en arrière-plan. Docker signale directement votre processus, et son code de sortie est celui du conteneur.

Un agent en échec n’est pas une panne

Si l’agent ne démarre pas ou n’atteint pas le relay, votre application continue de tourner. Sans join key défini, sidecar n’est qu’un simple exec.

Sortant uniquement

C’est le conteneur qui appelle le relay. Aucun port entrant n’est ouvert et aucune règle d’ingress n’est nécessaire.

N’importe quelle image de base

Le binaire ne lie aucune libc : Alpine, Debian, distroless et scratch fonctionnent tous.

Ce que la machine sait faire une fois connectée.

Terminal

Ouvrez un shell dans le conteneur en cours d’exécution depuis le navigateur, la CLI ou votre téléphone.

Accès aux fichiers

Lisez, comparez et modifiez les fichiers du conteneur, dans les limites du répertoire que vous indiquez à l’agent.

Opérations IA

Demandez à un agent d’inspecter, modifier, exécuter ou déboguer ce qui se trouve dans le conteneur.

Exécution à distance

Lancez des commandes et transmettez le travail d’une machine à l’autre depuis n’importe quelle surface Cmdop.

Un conteneur, puis une flotte.

La même image tourne sur votre portable, dans Compose et partout où vous exécutez déjà des conteneurs. Lancez-en cinq cents et vous obtenez cinq cents agents indépendants, parce que la gérabilité est une propriété de l’image et non quelque chose à déployer à côté.

  1. Un conteneur
  2. Une machine dans la flotte
  3. Une flotte que vous pouvez opérer

Ensuite, donnez-lui le join key de la flotte.

Construisez l’image et passez l’adresse du relay et le join key en variables d’environnement. La machine apparaît dans votre flotte au démarrage, et il n’y a rien d’autre à configurer.

Le dépôt public contient un Dockerfile de quinze lignes sur une application Node ordinaire — les variables, ce que chacune évite, et un conteneur que vous pouvez démarrer tout de suite.

Inside the Docker deployment, an editable project folder flows into verified output and then into Git history
Le stand de démo

Voyez toute la boucle avant de vous engager.

La démo publique est volontairement plus fournie : elle héberge son propre relay, monte un projet inscriptible et lance un serveur de développement, pour que vous voyiez un agent modifier une vraie application et inscrire le changement dans l’historique Git.

Elle montre ce dont Cmdop est capable de bout en bout. Ajouter l’agent à un conteneur que vous possédez déjà reste deux lignes.

Deux lignes, et le conteneur est à vous à piloter.

Ajoutez le binaire à une image que vous livrez déjà, ou clonez l’exemple et regardez une machine rejoindre la flotte.