Hosting

Environnement d’exécution de machine virtuelle Docker

Étapes d’exécution partagées pour les installations Docker sur machine virtuelle, telles que GCP, Hetzner et les fournisseurs de VPS similaires.

Intégrer les binaires requis à l’image

Installer des binaires dans un conteneur en cours d’exécution est un piège : tout ce qui est installé à l’exécution est perdu au redémarrage. Intégrez dans l’image, au moment de sa construction, chaque binaire externe dont une skill a besoin.

Les exemples ci-dessous ne couvrent que trois binaires, par ordre alphabétique :

  • gog (provenant de gogcli) pour accéder à Gmail
  • goplaces pour Google Places
  • wacli pour WhatsApp

Il s’agit d’exemples et non d’une liste exhaustive. Installez autant de binaires que nécessaire pour vos skills en suivant le même modèle. Lorsque vous ajoutez ultérieurement une skill nécessitant un nouveau binaire :

  1. Mettez à jour le Dockerfile.
  2. Reconstruisez l’image.
  3. Redémarrez les conteneurs.

Exemple de Dockerfile

dockerfile
FROM node:24-bookworm RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/* # Exemple de binaire 1 : CLI Gmail (gogcli — installé sous le nom `gog`)# Copiez l’URL actuelle de la ressource Linux depuis 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 # Exemple de binaire 2 : CLI Google Places# Copiez l’URL actuelle de la ressource Linux depuis 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 # Exemple de binaire 3 : CLI WhatsApp# Copiez l’URL actuelle de la ressource Linux depuis 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 # Ajoutez d’autres binaires ci-dessous en suivant le même modèle 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"]

Construire et lancer

bash
docker compose builddocker compose up -d openclaw-gateway

Si la construction échoue avec Killed ou le code de sortie 137 pendant pnpm install --frozen-lockfile, la machine virtuelle manque de mémoire. Utilisez une classe de machine plus puissante avant de réessayer.

Vérifiez les binaires :

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

Sortie attendue :

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

Vérifiez que le Gateway est opérationnel :

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

Une réponse 200 de /healthz confirme que le processus Gateway est à l’écoute et en bon état ; le contrôle HEALTHCHECK intégré à l’image interroge le même point de terminaison.

Emplacement des données persistantes

OpenClaw s’exécute dans Docker, mais Docker n’est pas la source de référence. Tous les états à long terme doivent survivre aux redémarrages, aux reconstructions et aux réamorçages.

Composant Emplacement Mécanisme de persistance Remarques
Configuration du Gateway /home/node/.openclaw/ Montage d’un volume de l’hôte Inclut openclaw.json
Identifiants de canal/fournisseur /home/node/.openclaw/credentials/ Montage d’un volume de l’hôte Données d’identification des canaux et fournisseurs
Profils d’authentification des modèles /home/node/.openclaw/agents/ Montage d’un volume de l’hôte agents/<agentId>/agent/auth-profiles.json (OAuth, clés d’API)
Ancien fichier de clés OAuth /home/node/.config/openclaw/ Montage d’un volume de l’hôte Compatibilité en lecture seule avec les fichiers annexes OAuth antérieurs à la migration ; openclaw doctor --fix les migre vers auth-profiles.json
Configurations des skills /home/node/.openclaw/skills/ Montage d’un volume de l’hôte État propre aux skills
Espace de travail de l’agent /home/node/.openclaw/workspace/ Montage d’un volume de l’hôte Code et artefacts de l’agent
Session WhatsApp /home/node/.openclaw/ Montage d’un volume de l’hôte Préserve la connexion par code QR
Trousseau Gmail /home/node/.openclaw/ Volume de l’hôte + mot de passe Nécessite GOG_KEYRING_PASSWORD
Paquets de plugins /home/node/.openclaw/npm, /home/node/.openclaw/git Montage d’un volume de l’hôte Répertoires racines des paquets de plugins téléchargeables
Binaires externes /usr/local/bin/ Image Docker Doivent être intégrés au moment de la construction
Environnement d’exécution Node Système de fichiers du conteneur Image Docker Reconstruit à chaque construction de l’image
Paquets du système d’exploitation Système de fichiers du conteneur Image Docker Ne les installez pas à l’exécution
Conteneur Docker Éphémère Redémarrable Peut être détruit sans risque

Mises à jour

Pour mettre à jour OpenClaw sur la machine virtuelle :

bash
git pulldocker compose builddocker compose up -d

Voir aussi

Was this useful?
On this page

On this page