Générateur Docker Compose

Créez un docker-compose.yml valide depuis un formulaire : services, images, ports, environnement, volumes, depends_on et redémarrage, avec préréglages PostgreSQL, MySQL et Redis.

Service 1
Service 2
docker-compose.yml

Conforme à la Compose Specification actuelle (sans clé « version: »). Les volumes nommés sont déclarés automatiquement. Remplacez les mots de passe d’exemple avant usage.

Outils Connexes

Voir Tout

Qu'est-ce que Générateur Docker Compose ?

Construisez un docker-compose.yml pour des configurations multi-conteneurs sans lutter contre l'indentation YAML. Ajoutez des services à partir de préréglages (PostgreSQL, MySQL, Redis, MongoDB, Nginx, votre propre application) ou partez de zéro, puis renseignez l'image ou le contexte de build, les ports, variables d'environnement, volumes, dépendances, politique de redémarrage et commande. Le YAML se met à jour pendant la saisie et les erreurs sont expliquées.

Comment utiliser Générateur Docker Compose

  1. Modifiez les services d'exemple ou utilisez Ajouter un service pour insérer un préréglage.
  2. Pour chaque service, définissez l'Image (ou le Contexte de build (sans image)), les Ports (hôte:conteneur), l'Environnement (CLÉ=valeur), les Volumes (source:cible), Dépend de et la Politique de redémarrage.
  3. Corrigez les problèmes listés en rouge (noms, ports, variables ou dépendances invalides).
  4. Téléchargez docker-compose.yml et lancez docker compose up -d.

Exemple

Entrée
Service app (build ., port 3000, NODE_ENV=production, depends on db) + PostgreSQL preset
Sortie
services:
  app:
    build: .
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      NODE_ENV: production
    depends_on:
      - db
  db:
    image: postgres:16-alpine
    restart: unless-stopped
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: app
      POSTGRES_PASSWORD: change-me
      POSTGRES_DB: app
    volumes:
      - pgdata:/var/lib/postgresql/data
volumes:
  pgdata: {}

Quand utiliser Générateur Docker Compose

Utilisez-le pour mettre en place des environnements de développement locaux, des démos et de simples déploiements sur un seul hôte. En production, vous ajouterez généralement à la main des health checks, limites de ressources, secrets et réseaux, ou vous utiliserez un orchestrateur comme Kubernetes. Remplacez les mots de passe d'exemple des préréglages avant de les utiliser où que ce soit.

Comment fonctionne Générateur Docker Compose

Le formulaire est converti en objet selon la Compose Specification actuelle (sans la clé obsolète version:) puis sérialisé en YAML avec js-yaml. Les mappings de ports sont mis entre guillemets, car des valeurs non quotées comme 22:22 peuvent être lues comme des nombres en base 60 par les analyseurs YAML 1.1. Les lignes d'environnement KEY=value deviennent un mapping, et tout volume dont la source est un nom plutôt qu'un chemin (par ex. pgdata:/var/lib/postgresql/data) est déclaré automatiquement sous la clé de premier niveau volumes:. Les noms de services, formats de ports, syntaxe KEY=value et cibles depends_on sont validés.

Cas d'utilisation courants

  • Exécuter une application avec PostgreSQL et Redis en local
  • Partager un environnement de développement reproductible avec une équipe
  • Créer un fichier compose pour un outil auto-hébergé
  • Apprendre la syntaxe Compose par l'exemple

Note de Sécurité

Publier des ports de base de données (p. ex. 5432:5432) les expose sur toutes les interfaces de l'hôte. Supprimez le mappage de port ou liez à 127.0.0.1 sur les serveurs, et utilisez des mots de passe forts ou des secrets.

Questions Fréquentes

Pourquoi n'y a-t-il pas de ligne version: ?

La clé version est obsolète dans la Compose Specification utilisée par Docker Compose v2 ; les versions actuelles l'ignorent et affichent un avertissement.

depends_on attend-il que la base de données soit prête ?

Non, il ne contrôle que l'ordre de démarrage. Ajoutez un healthcheck et condition: service_healthy, ou réessayez les connexions dans votre application.

Quelle différence entre un volume nommé et un bind mount ?

Un volume nommé (pgdata:/path) est géré par Docker et survit à la recréation du conteneur ; un bind mount (./data:/path) associe un dossier de votre machine.

Explorer d'autres catégories