Docker VM Runtime

Etapes d’execution partagees pour les installations Docker sur VM, comme GCP, Hetzner et autres fournisseurs VPS similaires.

Integrer les binaires requis dans l’image

Installer des binaires dans un conteneur en cours d’execution est un piege. Tout ce qui est installe a l’execution sera perdu au redemarrage.

Tous les binaires externes requis par les competences doivent etre installes au moment de la construction de l’image.

Les exemples ci-dessous montrent trois binaires courants uniquement :

  • gog pour l’acces Gmail
  • goplaces pour Google Places
  • wacli pour WhatsApp

Ce sont des exemples, pas une liste exhaustive. Vous pouvez installer autant de binaires que necessaire en suivant le meme schema.

Si vous ajoutez de nouvelles competences par la suite qui dependent de binaires supplementaires, vous devez :

  1. Mettre a jour le Dockerfile
  2. Reconstruire l’image
  3. Redemarrer les conteneurs

Exemple de 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
RUN curl -L https://github.com/steipete/gog/releases/latest/download/gog_Linux_x86_64.tar.gz \
  | tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/gog

# Exemple de binaire 2 : CLI Google Places
RUN curl -L https://github.com/steipete/goplaces/releases/latest/download/goplaces_Linux_x86_64.tar.gz \
  | tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/goplaces

# Exemple de binaire 3 : CLI WhatsApp
RUN curl -L https://github.com/steipete/wacli/releases/latest/download/wacli_Linux_x86_64.tar.gz \
  | tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/wacli

# Ajoutez d'autres binaires ci-dessous en suivant le meme schema

WORKDIR /app
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
COPY ui/package.json ./ui/package.json
COPY scripts ./scripts

RUN corepack enable
RUN pnpm install --frozen-lockfile

COPY . .
RUN pnpm build
RUN pnpm ui:install
RUN pnpm ui:build

ENV NODE_ENV=production

CMD ["node","dist/index.js"]

Construction et lancement

docker compose build
docker compose up -d openclaw-gateway

Si la construction echoue avec Killed ou exit code 137 pendant pnpm install --frozen-lockfile, la VM manque de memoire. Utilisez une classe de machine plus grande avant de reessayer.

Verifiez les binaires :

docker compose exec openclaw-gateway which gog
docker compose exec openclaw-gateway which goplaces
docker compose exec openclaw-gateway which wacli

Sortie attendue :

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

Verifiez la passerelle :

docker compose logs -f openclaw-gateway

Sortie attendue :

[gateway] listening on ws://0.0.0.0:18789

Ce qui persiste et ou

OpenClaw tourne dans Docker, mais Docker n’est pas la reference. Tout etat longue duree doit survivre aux redemarrages, reconstructions et reboots.

ComposantEmplacementMecanisme de persistanceNotes
Config passerelle/home/node/.openclaw/Montage volume hoteInclut openclaw.json, tokens
Profils auth modele/home/node/.openclaw/Montage volume hoteTokens OAuth, cles API
Configs competences/home/node/.openclaw/skills/Montage volume hoteEtat au niveau competence
Espace de travail/home/node/.openclaw/workspace/Montage volume hoteCode et artefacts de l’agent
Session WhatsApp/home/node/.openclaw/Montage volume hotePreserve la connexion QR
Trousseau Gmail/home/node/.openclaw/Volume hote + mot de passeNecessite GOG_KEYRING_PASSWORD
Binaires externes/usr/local/bin/Image DockerDoivent etre integres au build
Runtime NodeSysteme de fichiers conteneurImage DockerReconstruit a chaque build
Paquets OSSysteme de fichiers conteneurImage DockerNe pas installer a l’execution
Conteneur DockerEphemereRedemarrablePeut etre detruit sans risque

Mises a jour

Pour mettre a jour OpenClaw sur la VM :

git pull
docker compose build
docker compose up -d