← Tous les exemples
Containers
Docker ComposeDocker

Démarrer une stack Docker Compose avec vérification d'état

Vous voulez que Runyard lance votre stack backend via docker compose up, qu'il la considère en cours seulement lorsque votre API répond, et qu'il arrête tout proprement quand vous cliquez sur Stop.

Le piège

Deux pièges classiques.

  1. Deux CLI, même nom. docker compose (le plugin V2, en deux mots) est la syntaxe actuelle. Le binaire autonome docker-compose (avec un trait d'union) est l'ancienne version, de plus en plus absente sur les installations récentes. Utilisez le plugin V2.
  2. SIGTERM ne nettoie pas. L'arrêt par défaut de Runyard envoie SIGTERM à docker compose up, puis SIGKILL après un délai de grâce. Cela arrête le processus compose au premier plan, mais laisse vos conteneurs tourner en arrière-plan. Il faut une entrée stopCommands explicite qui exécute docker compose down pour démonter les conteneurs, les réseaux et les volumes proprement.

Configuration qui fonctionne

{
  "name": "Backend Stack",
  "type": "service",
  "directory": "~/Code/votre-projet",
  "autoStart": false,
  "startCommands": [{
    "label": "Compose",
    "command": "docker",
    "args": ["compose", "up"],
    "startupCheck": "http://localhost/api/health",
    "startupFallbackPort": 8000,
    "startupRequestTimeout": 30
  }],
  "stopCommands": [{
    "label": "Compose down",
    "command": "docker",
    "args": ["compose", "down"]
  }],
  "paths": ["/opt/homebrew/bin", "/Applications/Docker.app/Contents/Resources/bin"]
}

Remplacez directory, le chemin de l'URL de santé et le port de repli par vos propres valeurs.

Pourquoi ça fonctionne

Prérequis

Pièges supplémentaires