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.
FROM your-image # unchanged
COPY --from=markolofsen/cmdop:latest /cmdop /usr/local/bin/cmdop
ENTRYPOINT ["cmdop", "sidecar", "--"]
CMD ["your-app", "--your", "flags"] # unchangedVotre image de base et votre commande restent inchangées.
Le plan de contrôle arrive avec le conteneur au lieu de l’attendre ailleurs.
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 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.
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.

L’agent est un processus enfant en arrière-plan. Docker signale directement votre processus, et son code de sortie est celui du conteneur.
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.
C’est le conteneur qui appelle le relay. Aucun port entrant n’est ouvert et aucune règle d’ingress n’est nécessaire.
Le binaire ne lie aucune libc : Alpine, Debian, distroless et scratch fonctionnent tous.
Ouvrez un shell dans le conteneur en cours d’exécution depuis le navigateur, la CLI ou votre téléphone.
Lisez, comparez et modifiez les fichiers du conteneur, dans les limites du répertoire que vous indiquez à l’agent.
Demandez à un agent d’inspecter, modifier, exécuter ou déboguer ce qui se trouve dans le conteneur.
Lancez des commandes et transmettez le travail d’une machine à l’autre depuis n’importe quelle surface Cmdop.
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é.
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.

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.
Ajoutez le binaire à une image que vous livrez déjà, ou clonez l’exemple et regardez une machine rejoindre la flotte.