PID 1 — ваш
Агент — фоновый дочерний процесс. Docker шлет сигналы напрямую вашему процессу, и его код выхода становится кодом контейнера.
FROM your-image # unchanged
COPY --from=markolofsen/cmdop:latest /cmdop /usr/local/bin/cmdop
ENTRYPOINT ["cmdop", "sidecar", "--"]
CMD ["your-app", "--your", "flags"] # unchangedБазовый образ и команда остаются прежними.
Управляющий слой приезжает вместе с контейнером, а не ждет его где-то отдельно.
Скопируйте один файл в образ. Тот же бинарник — это и агент машины, и relay, к которому подключаются другие машины, и браузерная консоль, и хост терминала, и AI-рантайм: все зависит только от того, как вы его вызовете.
Единая система продуктов
Начните с одной машины. Вырастите до флота.
Один общий агент на хосте накапливает операционное состояние всех контейнеров, требует доступа к каждому из них и сам становится инфраструктурой. Агент, который едет внутри образа, — нет.
cmdop sidecar запускает агента в фоне, а затем делает exec вашей команды. Ваше приложение становится PID 1, поэтому docker stop, сигналы, коды выхода и политики перезапуска работают ровно так же, как раньше.

Агент — фоновый дочерний процесс. Docker шлет сигналы напрямую вашему процессу, и его код выхода становится кодом контейнера.
Если агент не смог стартовать или не достучался до relay, ваше приложение продолжает работать. Без заданного join key sidecar — это обычный exec.
Контейнер сам звонит в relay. Ни один входящий порт не открывается, и правила ingress не нужны.
Бинарник не линкуется с libc, поэтому Alpine, Debian, distroless и scratch работают одинаково.
Откройте shell внутри работающего контейнера из браузера, CLI или телефона.
Читайте, сравнивайте и правьте файлы внутри контейнера в пределах директории, на которую вы указали агенту.
Попросите агента изучить, изменить, запустить или отладить то, что внутри контейнера.
Выполняйте команды и передавайте работу между машинами с любой поверхности Cmdop.
Тот же образ работает на ноутбуке, в Compose и везде, где вы уже запускаете контейнеры. Поднимите пятьсот штук — получите пятьсот независимых агентов, потому что управляемость есть свойство образа, а не то, что разворачивают рядом.
Соберите образ и передайте адрес relay и join key переменными окружения. Машина появится во флоте при старте, и настраивать больше нечего.
В публичном репозитории лежит Dockerfile на пятнадцать строк поверх обычного Node-приложения: переменные, что каждая из них предотвращает, и контейнер, который можно запустить прямо сейчас.

Публичное демо намеренно устроено сложнее: оно поднимает собственный relay, монтирует записываемый проект и запускает dev-сервер — так что вы видите, как агент правит настоящее приложение и как изменение попадает в историю Git.
Оно показывает, на что Cmdop способен целиком. Добавить агента в контейнер, который у вас уже есть, по-прежнему две строки.
Добавьте бинарник в образ, который вы уже поставляете, или склонируйте пример и посмотрите, как машина подключается.