En 2026, beaucoup d'équipes choisissent encoreDocker Composepour livrer une pile de type OpenClaw — passerelle, workers, observabilité — dans un fichier unique, facile à relire en revue de code. Les incidents qui survivent au post-mortem ne sont souvent pas des bugs noyau exotiques, mais desdéfauts de reproductibilité : un tag flottant a modifié le système de fichiers racine sans bruit, un répertoire d'état monté en bind a laissé l'expérience d'hier empoisonner la démo d'aujourd'hui, ou une passerelle a passé une sonde TCP superficielle alors que les dépendances amont n'avaient pas fini d'initialiser les secrets. Ce tutoriel couvrel'épinglage d'images, la conception des volumes, les health checks de passerelleet unereproduction de flux métier façon ticketà intégrer dans vos runbooks internes.
1) Traiter Compose comme un livrable, pas comme un brouillon
Chaque modification dedocker-compose.ymlsans revue ajoute une nouvelle classe de « ça marche sur mon portable ». Pour les déploiements de style OpenClaw, standardisez surun fichier Compose par environnement(par exemple des surchargescompose.prod.yaml) et consignez la ligne de commande exacte dans le README :docker compose -f compose.yaml -f compose.prod.yaml up -d. Associez-y un niveau de patch Docker Engine épinglé sur l'hôte pour que pilotes de volumes et comportement cgroup correspondent à ce que la CI a réellement exécuté.
Si vous harmonisez en parallèle des pools de build macOS distants, la même rigueur sur les entrées et le cache s'applique : voir notre FAQ sur Bazel et Gradle en build distant sur un pool Mac cloud en 2026.
2) Épingler les images comme on épinglerait un compilateur
Les tags flottants tels que:latestou même des mineurs mouvants sont pratiques jusqu'à ce qu'une promotion en registre modifie les réglages OpenSSL ou supprime un drapeau CLI déprécié. Préférez desréférences immuables : digest (image: depot/app@sha256:…) ou nomenclature générée en CI qui n'avance que via fusion revue. Si un tag mutable est imposé par un miroir conformité, documentez la politique de promotion et ajoutez une tâche planifiée qui échoue lorsque le digest dérive sans ticket associé.
La politique de rebuild compte autant que l'épingle. Si les développeurs lancent systématiquementdocker compose pullavant une démo, intégrez cette commande au script de reproduction pour que le support voie les mêmes couches que le commercial. Sur Apple Silicon, vérifiez aussi si les images sont multi-arch ou amd64 seules : l'émulation change suffisamment les timings pour masquer des courses qui n'apparaissent qu'en binaire arm64 natif.
3) Volumes : séparer l'état précieux du brouillon jetable
Les bind mounts se branchent vite et deviennent difficiles à raisonner au bout de six mois. Classez mentalement les volumes en trois paquets :configuration(en lecture seule si possible),état durable(bases, magasins de secrets chiffrés, caches de modèles à conserver entre mises à niveau) etbrouillon éphémère(arbres de build, uploads temporaires, index locaux reconstruisibles). Placez le brouillon sur des volumes nommés ou du tmpfs pour quedocker compose down -vne supprime pas par mégarde la base que vous vouliez garder — ou inversement pour pouvoir réellement purger un cache empoisonné lors du diagnostic.
- Évitez de monter tout le répertoire personnel de l'hôte « pour gagner du temps » — étiquettes SELinux/AppArmor et effets de bord des dotfiles divergent entre machines.
- Documentez la propriété : quel UID de service dans le conteneur doit posséder le chemin bind sur l'hôte ?
- Pour une passerelle qui termine le TLS, gardez le matériel de certificat hors des volumes anonymes sauf si votre sauvegarde couvre explicitement ce cas.
Pour le stockage, les accès SSH/VNC et la collecte des logs lors d'un ticket sur un Mac cloud, repartez de Faire tourner OpenClaw sur le cloud vpszap.
4) Les health checks de passerelle doivent prouver la disponibilité, pas seulement la vie
Une passerelle qui répondHTTP 200sur/healthzalors que le pool d'agents en aval ne peut pas s'authentifier est pire qu'un crash brutal : l'équilibreur continue d'envoyer du trafic dans un puits sans fond. Privilégiez des sondes qui exercent lachaîne de dépendances minimale viable : introspection de jeton, somme de contrôle du fichier de configuration ou transaction synthétique légère contre la file des workers. Dans Compose, combinezhealthcheckavecdepends_on: condition: service_healthypour les services qui ne doivent pas démarrer trop tôt ; « healthy » n'aide que si la sonde elle-même est honnête.
5) Pas à pas : rejouer un flux métier « sous ticket »
Imaginez le ticket n°4412 :« Après mise à niveau de la passerelle, le flux client expire. »Partez d'un arbre de travail propre et exécutezgit checkout <tag>aligné sur la production. Exportezdocker compose --profile prod config > /tmp/repro.yamlpour figer les profils fusionnés. Montez la pile avec--no-buildsi vous visez une reproduction stricte des images registre, puis capturezdocker compose ps,docker compose logs gateway --since 30met la commande client (curl ou gRPC) jointe au ticket. Si l'anomalie disparaît, bissectez les digests jusqu'à isoler un bump de service.
Lorsque la cause est environnementale — pression disque, dérive d'horloge, MTU sur un overlay — collectez les signaux hôte dans la même fenêtre :df -h,vm_statsous macOS, et si des points de bind ont franchi des quotas de système de fichiers. Clôturez en annexant au ticket le diff Compose final et la définition de health check validée, pour que l'ingénieur suivant hérite d'une fermeture reproductible.
Sur le cloud vpszap, la pile s'exécute sur du matériel réel
Un fichier Compose n'est fiable que si lehôte macOSen dessous offre une latence SSD prévisible, du CPU non disputé pour les pulls parallèles et un chemin réseau proche de ce que vos utilisateurs voient en production. vpszap fournit desMac mini M4 physiques— sans virtualisation — avec CPU, mémoire et SSD entièrement dédiés à votre instance, activés en environcinq minutesavecSSH et VNC. La facturation est flexible aujour, semaine, mois ou trimestre, sans engagement long, et les nœuds couvrentplusieurs régions mondialespour rapprocher passerelles, équipes et infrastructure de signature.
Si vous voulez répéter le même déploiement Docker Compose sur du matériel qui se comporte comme la production plutôt que sur un portable bruyant, le Mac mini vpszap dans le cloud est un point de départ pragmatique pour l'expérience.