Öffentliches Docker-Repository

Machen Sie aus jedem Container eine Cmdop-Maschine.

Zwei Zeilen im Dockerfile, das Sie bereits haben. Ihre Anwendung bleibt PID 1, der Agent fährt mit.

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

Ihr Base Image und Ihr Command bleiben unverändert.

Cmdop kommt als eine einzige Binary.

Die Steuerungsebene reist mit dem Container, statt anderswo auf ihn zu warten.

  • Kein Datenbankserver
  • Kein Redis
  • Kein Message Broker
  • Kein Backend-Dienst
  • Keine Web-App, die daneben deployt werden muss

Kopieren Sie eine Datei in Ihr Image. Dieselbe Binary ist Maschinenagent, relay für andere Maschinen, Browserkonsole, Terminal-Host und KI-Runtime — je nachdem, wie Sie sie aufrufen.

Ein Produktsystem

Beginne mit einer Maschine. Wachse zu einer Flotte.

Ein Agent pro Container, kein Daemon pro Host.

Ein gemeinsamer Agent auf dem Host sammelt den Betriebszustand aller Container, braucht Zugriff auf jeden davon und wird selbst zur Infrastruktur. Ein Agent, der im Image mitreist, tut das nicht.

Reichweite
Host-Daemon: Jeder Container auf der Maschine
Cmdop im Container: Nur der eigene Container, sonst nichts
Zugriff
Host-Daemon: Docker-Socket oder Host-Privilegien
Cmdop im Container: Nur das, was der Container ohnehin hat
Lebenszyklus
Host-Daemon: Separat installiert, aktualisiert und überwacht
Cmdop im Container: Startet und stoppt mit dem Container
Betriebszustand
Host-Daemon: Geteilt über alles, was er verwaltet
Cmdop im Container: Pro Container isoliert
Skalierung
Host-Daemon: Ein Agent muss mit der ganzen Flotte Schritt halten
Cmdop im Container: Steuerbarkeit repliziert sich mit Ihrem Image

Der Container gehört weiterhin Ihrem Prozess.

cmdop sidecar startet den Agenten im Hintergrund und führt dann Ihren Befehl per exec aus. Ihre Anwendung wird PID 1, also verhalten sich docker stop, Signale, Exit-Codes und Restart-Policies exakt wie zuvor.

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

PID 1 gehört Ihnen

Der Agent ist ein Kindprozess im Hintergrund. Docker signalisiert direkt an Ihren Prozess, und dessen Exit-Code ist der des Containers.

Ein scheiternder Agent ist kein Ausfall

Wenn der Agent nicht startet oder den relay nicht erreicht, läuft Ihre Anwendung weiter. Ohne gesetzten join key ist sidecar ein schlichtes exec.

Nur ausgehend

Der Container wählt sich zum relay. Kein eingehender Port wird geöffnet, keine Ingress-Regel wird gebraucht.

Jedes Base Image

Die Binary linkt keine libc, also funktionieren Alpine, Debian, distroless und scratch gleichermaßen.

Was die Maschine kann, sobald sie beigetreten ist.

Terminal

Öffnen Sie eine Shell im laufenden Container — aus dem Browser, der CLI oder vom Handy.

Dateizugriff

Lesen, vergleichen und bearbeiten Sie die Dateien im Container, begrenzt auf das Verzeichnis, auf das Sie den Agenten richten.

KI-Operationen

Lassen Sie einen Agenten prüfen, ändern, ausführen oder debuggen, was im Container liegt.

Remote-Ausführung

Führen Sie Befehle aus und geben Sie Arbeit zwischen Maschinen weiter — von jeder Cmdop-Oberfläche aus.

Erst ein Container, dann eine Flotte.

Dasselbe Image läuft auf Ihrem Laptop, in Compose und überall sonst, wo Sie schon Container betreiben. Starten Sie fünfhundert davon, haben Sie fünfhundert unabhängige Agenten, denn Steuerbarkeit ist eine Eigenschaft des Images und nichts, was Sie daneben deployen.

  1. Ein Container
  2. Eine Maschine in der Flotte
  3. Eine Flotte, die Sie betreiben können

Dann geben Sie ihm den join key der Flotte.

Bauen Sie das Image und übergeben Sie relay-Adresse und join key als Umgebungsvariablen. Die Maschine erscheint beim Start in Ihrer Flotte, und mehr ist nicht zu konfigurieren.

Das öffentliche Repository enthält ein fünfzehnzeiliges Dockerfile über einer gewöhnlichen Node-App — die Variablen, was jede davon verhindert, und einen Container, den Sie sofort starten können.

Inside the Docker deployment, an editable project folder flows into verified output and then into Git history
Der Demo-Stand

Sehen Sie den ganzen Loop, bevor Sie sich festlegen.

Die öffentliche Demo ist absichtlich größer aufgebaut: Sie hostet ihren eigenen relay, mountet ein schreibbares Projekt und startet einen Dev-Server — so sehen Sie zu, wie ein Agent eine echte Anwendung ändert und die Änderung in der Git-Historie landet.

Sie zeigt, was Cmdop von Anfang bis Ende kann. Den Agenten in einen Container zu bringen, den Sie schon besitzen, bleibt zwei Zeilen.

Zwei Zeilen, und der Container gehört Ihnen zum Betreiben.

Fügen Sie die Binary einem Image hinzu, das Sie schon ausliefern, oder klonen Sie das Beispiel und sehen Sie einer Maschine beim Beitreten zu.