Skip to Content

Docker

Es gibt drei aufeinander aufbauende Images — ein generisches Runtime-Image und zwei darauf aufsetzende Images:

ImageDockerfileInhalt
agent-runtimeDockerfileGenerisches OpenClaw-Runtime-Image mit Werkzeugkasten (OpenClaw, Bun, Node, gh, Claude Code, Codex, pc, Python, uv), der pc-runtime-CLI und dem Engine-Plugin. Enthält nur Agent main — bewusst keine weiteren Agenten.
agentsDockerfile.agentsSetzt auf das Runtime-Image auf, ergänzt az (Azure DevOps) und die kompilierte coding-agent-Binary; bringt die Coding-Agenten und den zyklischen Support-Agent mit.
demo-agentsDockerfile.demoSetzt auf das Runtime-Image auf und ergänzt die minimalen Diagnose-Agenten demo-orchestrator und demo-worker (ohne GitHub/Azure/Engine).

Die Gateway startet mit --allow-unconfigured, kommt also auch ohne vorhandene Konfiguration hoch.

Agenten werden beim Container-Start registriert

Das Basis-Dockerfile backt keine Agenten ein (nur main). Die abgeleiteten Images (Dockerfile.agents / Dockerfile.demo) registrieren ihre Agenten zwar zur Build-Zeit via install.mjs — diese Registrierung liegt aber unter ~/.openclaw und wird zur Laufzeit von einem gemounteten Volume/PVC überlagert.

Deshalb registriert das docker-entrypoint.sh die Agenten bei jedem Container-Start neu (gegen das gemountete ~/.openclaw, idempotent) und startet danach die Gateway. Die Build-Zeit-Registrierung dient nur Cache, Validierung und Volume-Seeding.

Volume überlagert Build-Zeit-Registrierung. Ein frisches Docker-Named-Volume wird beim ersten Mount aus dem Image geseedet — die Registrierung überlebt. Ein leeres Kubernetes-PVC wird dagegen nicht geseedet und überdeckt ~/.openclaw vollständig. Ohne Start-Registrierung existierte im Pod nur Agent main. In k8s erledigt das ein initContainer — siehe Kubernetes / k3s.

Lokale Compose-Wege

Jedes Agenten-Image hat sein eigenes Compose mit eigenem Gateway-Port, damit die Stacks parallel laufen können:

Compose-DateiAgentenGateway-Port
docker-compose.ymlnur main18789
docker-compose.agents.ymlCoding-Agenten18791
docker-compose.support.ymlSupport-Agent (baut das agents-Image, registriert per PC_INSTALL_AGENTS=support-agent nur den Support-Agenten)18790
docker-compose.demo.ymlDemo-Agenten (Diagnose)
docker network create pc-shared # einmalig: gemeinsames Netz # Runtime (nur main): docker compose up -d # Coding-Agenten: docker compose -f docker-compose.agents.yml up -d # Support-Agent: docker compose -f docker-compose.support.yml up -d # Demo-Agenten (Diagnose): docker compose -f docker-compose.demo.yml up -d

Der schnellste Einstieg in die Runtime führt über Agent Runtime.

Veröffentlichte Images

Beim Pushen eines v*-Tags baut der Publish-Workflow die Images als Multi-Arch (amd64 + arm64, jeweils auf nativem Runner) und veröffentlicht sie nach GitHub (GHCR): ghcr.io/processcube-io/agent-runtime, ghcr.io/processcube-io/agents und ghcr.io/processcube-io/demo-agents (jedes agents-Image durchläuft dabei einen Container-Smoke-Test). Parallel dazu wird das npm-Paket @processcube-io/agents publiziert.