Hosting

Docker-VM-Laufzeitumgebung

Gemeinsame Laufzeitschritte für VM-basierte Docker-Installationen wie GCP, Hetzner und ähnliche VPS-Provider.

Erforderliche Binärdateien in das Image integrieren

Binärdateien in einem laufenden Container zu installieren, ist problematisch: Alles, was zur Laufzeit installiert wird, geht beim Neustart verloren. Integrieren Sie jede externe Binärdatei, die ein Skill benötigt, während des Builds in das Image.

Die folgenden Beispiele behandeln lediglich drei Binärdateien in alphabetischer Reihenfolge:

  • gog (aus gogcli) für den Gmail-Zugriff
  • goplaces für Google Places
  • wacli für WhatsApp

Dies sind Beispiele und keine vollständige Liste. Installieren Sie nach demselben Muster so viele Binärdateien, wie Ihre Skills benötigen. Wenn Sie später einen Skill hinzufügen, der eine neue Binärdatei benötigt:

  1. Aktualisieren Sie das Dockerfile.
  2. Erstellen Sie das Image neu.
  3. Starten Sie die Container neu.

Beispiel-Dockerfile

dockerfile
FROM node:24-bookworm RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/* # Beispiel-Binärdatei 1: Gmail-CLI (gogcli — wird als `gog` installiert)# Kopieren Sie die aktuelle URL des Linux-Assets von https://github.com/steipete/gogcli/releasesRUN curl -L https://github.com/steipete/gogcli/releases/latest/download/gogcli_linux_amd64.tar.gz \  | tar -xzO gog > /usr/local/bin/gog; \  chmod +x /usr/local/bin/gog # Beispiel-Binärdatei 2: Google-Places-CLI# Kopieren Sie die aktuelle URL des Linux-Assets von https://github.com/steipete/goplaces/releasesRUN curl -L https://github.com/steipete/goplaces/releases/latest/download/goplaces_linux_amd64.tar.gz \  | tar -xzO goplaces > /usr/local/bin/goplaces; \  chmod +x /usr/local/bin/goplaces # Beispiel-Binärdatei 3: WhatsApp-CLI# Kopieren Sie die aktuelle URL des Linux-Assets von https://github.com/steipete/wacli/releasesRUN curl -L https://github.com/steipete/wacli/releases/latest/download/wacli-linux-amd64.tar.gz \  | tar -xzO wacli > /usr/local/bin/wacli; \  chmod +x /usr/local/bin/wacli # Fügen Sie nach demselben Muster unten weitere Binärdateien hinzu WORKDIR /appCOPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./COPY ui/package.json ./ui/package.jsonCOPY scripts ./scripts RUN corepack enableRUN pnpm install --frozen-lockfile COPY . .RUN pnpm buildRUN pnpm ui:installRUN pnpm ui:build ENV NODE_ENV=production CMD ["node","dist/index.js"]

Erstellen und starten

bash
docker compose builddocker compose up -d openclaw-gateway

Wenn der Build während pnpm install --frozen-lockfile mit Killed oder dem Exit-Code 137 fehlschlägt, verfügt die VM nicht über genügend Arbeitsspeicher. Verwenden Sie vor einem erneuten Versuch eine größere Maschinenklasse.

Binärdateien überprüfen:

bash
docker compose exec openclaw-gateway which gogdocker compose exec openclaw-gateway which goplacesdocker compose exec openclaw-gateway which wacli

Erwartete Ausgabe:

text
/usr/local/bin/gog/usr/local/bin/goplaces/usr/local/bin/wacli

Überprüfen Sie, ob das Gateway ausgeführt wird:

bash
docker compose logs -f openclaw-gatewaycurl -fsS http://127.0.0.1:18789/healthz

Wenn /healthz eine 200-Antwort zurückgibt, bestätigt dies, dass der Gateway-Prozess Verbindungen entgegennimmt und fehlerfrei ausgeführt wird; das integrierte Image HEALTHCHECK fragt denselben Endpunkt ab.

Was wo dauerhaft gespeichert wird

OpenClaw wird in Docker ausgeführt, Docker ist jedoch nicht die maßgebliche Datenquelle. Der gesamte langlebige Zustand muss Neustarts, Neuerstellungen und Reboots überstehen.

Komponente Speicherort Persistenzmechanismus Hinweise
Gateway-Konfiguration /home/node/.openclaw/ Host-Volume-Mount Enthält openclaw.json
Kanal-/Provider-Anmeldedaten /home/node/.openclaw/credentials/ Host-Volume-Mount Anmeldedatenmaterial für Kanäle und Provider
Modellauthentifizierungsprofile /home/node/.openclaw/agents/ Host-Volume-Mount agents/<agentId>/agent/auth-profiles.json (OAuth, API-Schlüssel)
Veraltete OAuth-Schlüsseldatei /home/node/.config/openclaw/ Host-Volume-Mount Schreibgeschützte Kompatibilität für OAuth-Sidecars vor der Migration; openclaw doctor --fix migriert diese nach auth-profiles.json
Skill-Konfigurationen /home/node/.openclaw/skills/ Host-Volume-Mount Zustand auf Skill-Ebene
Agent-Arbeitsbereich /home/node/.openclaw/workspace/ Host-Volume-Mount Code und Agent-Artefakte
WhatsApp-Sitzung /home/node/.openclaw/ Host-Volume-Mount Behält die QR-Anmeldung bei
Gmail-Schlüsselbund /home/node/.openclaw/ Host-Volume + Passwort Erfordert GOG_KEYRING_PASSWORD
Plugin-Pakete /home/node/.openclaw/npm, /home/node/.openclaw/git Host-Volume-Mount Stammverzeichnisse herunterladbarer Plugin-Pakete
Externe Binärdateien /usr/local/bin/ Docker-Image Müssen während des Builds integriert werden
Node-Laufzeit Container-Dateisystem Docker-Image Wird bei jedem Image-Build neu erstellt
Betriebssystempakete Container-Dateisystem Docker-Image Nicht zur Laufzeit installieren
Docker-Container Flüchtig Neu startbar Kann gefahrlos zerstört werden

Aktualisierungen

So aktualisieren Sie OpenClaw auf der VM:

bash
git pulldocker compose builddocker compose up -d

Verwandte Themen

Was this useful?
On this page

On this page