⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Utiliser Compose en production

Quand vous définissez votre application avec Compose en développement, vous pouvez utiliser cette définition pour exécuter votre application dans différents environnements tels que CI, staging et production.

La façon la plus facile de déployer une application est de l'exécuter sur un seul serveur, similaire à la façon dont vous exécuteriez votre environnement de développement. Si vous voulez faire évoluer votre application, vous pouvez exécuter des applications Compose sur un cluster Swarm.

Modifier votre fichier Compose pour la production

Vous pourriez avoir besoin d'apporter des modifications à la configuration de votre application pour la rendre prête pour la production. Ces modifications pourraient inclure :

  • Supprimer toutes les liaisons de volume pour le code d'application, pour que le code reste à l'intérieur du conteneur et ne puisse pas être changé de l'extérieur
  • Se lier à différents ports sur l'hôte
  • Définir les variables d'environnement différemment, comme réduire la verbosité de la journalisation, ou pour spécifier les paramètres pour des services externes tels qu'un serveur de messagerie
  • Spécifier une politique de redémarrage comme restart: always pour éviter les temps d'arrêt
  • Ajouter des services supplémentaires tels qu'un agrégateur de journaux

Pour cette raison, considérez définir un fichier Compose supplémentaire, par exemple compose.production.yaml, qui spécifie une configuration appropriée à la production. Ce fichier de configuration ne doit inclure que les modifications que vous voulez apporter par rapport au fichier Compose original. Le fichier Compose supplémentaire est ensuite appliqué par-dessus le compose.yaml original pour créer une nouvelle configuration.

Une fois que vous avez un second fichier de configuration, vous pouvez l'utiliser avec l'option -f :

$ docker compose -f compose.yaml -f compose.production.yaml up -d

Voir Utiliser plusieurs fichiers compose pour un exemple plus complet, et d'autres options.

Déployer les changements

Quand vous apportez des modifications au code de votre application, n'oubliez pas de reconstruire votre image et recréer les conteneurs de votre application. Pour redéployer un service appelé web, utilisez :

$ docker compose build web
$ docker compose up --no-deps -d web

Cette première commande reconstruit l'image pour web puis arrête, détruit et recrée juste le service web. Le flag --no-deps empêche Compose de également recréer tous les services dont web dépend.

Exécuter Compose sur un seul serveur

Vous pouvez utiliser Compose pour déployer une application vers un hôte Docker distant en définissant les variables d'environnement DOCKER_HOST, DOCKER_TLS_VERIFY, et DOCKER_CERT_PATH de manière appropriée. Pour plus d'informations, voir variables d'environnement prédéfinies.

Une fois que vous avez configuré vos variables d'environnement, toutes les commandes normales docker compose fonctionnent sans configuration supplémentaire.