Français

Outils de développement · Docker exécuté vers Docker compose converter

docker-compose vs docker compose : l'outil Python et le plugin Go

· Contexte

menu fixe composer flux de travail du développeur

Schéma abstrait illustrant docker-compose vs docker compose : l'outil python et le plugin go
Illustration vectorielle originale de ToolAcre

Le trait d'union marque deux programmes différents. Cet article explique d'où chacun vient, en quoi leur comportement diffère et comment savoir lequel est exécuté par une machine.

Le script fonctionne localement et échoue dans CI : une machine a docker-compose, l'autre a docker compose, et ce ne sont pas les mêmes

Le script fonctionne localement et échoue dans CI : une machine a docker-compose, l'autre a docker compose, et ce ne sont pas les mêmes. Preuve : différents noms d'exécutables peuvent échouer dans CI mais le navigateur ne peut pas inspecter PATH. Reproduisez le choix exécutable avec des littéraux jetables. Associez chaque occurrence source avec des commandes simples YAML et locales ; réserver un comportement spécifique au binaire pour l'examen de la destination.

l'incident de workflow de développeur pour ce workflow de développeur pour cette section de workflow de développeur section pour pour ceci pour cette section de workflow de développeur développeur pour cette section de workflow de développeur section de workflow ce développeur pour cela pour cette section de workflow de développeur section de workflow de développeur section de workflow pour cette section de workflow de développeur révèle également qu'une limite distincte d'incident de workflow de développeur est que les différences de dénomination et d'indicateur varient selon l'implémentation et la version. Preuve : le référentiel ne donne aucune preuve d'exécution ou historique plus large. Cette contrainte de choix d’exécutable est un point d’arrêt. Inspectez les YAML simples et les commandes locales sans comportement de fabrication, puis documentez une vérification de l'hôte pour le comportement spécifique aux binaires.

Le référentiel ne fournit pas l'historique de distribution de l'ancien programme Python

L'ère Python — docker-compose en tant que programme autonome installé avec pip ou en tant que binaire. Preuve : l'historique de la distribution Python précédente ne provient pas d'ici ; Le référentiel ne fournit pas l'historique de distribution de l'ancien programme Python. Tracez les jetons de choix exécutables dans les commandes simples YAML et locales. Séparez les valeurs ordonnées des champs de dernière valeur ; le comportement spécifique au binaire est en dehors de la collection.

Une limite du mécanisme de flux de travail de développeur associé est que, pour cette section de flux de travail de développeur, conservez la commande originale de cette section de flux de travail de développeur et les avertissements pour cette section de flux de travail de développeur à côté de ce fichier de candidat. Utilisez ce fait de choix exécutable pour prédire un membre ou un scalaire en clair YAML et des commandes locales. Vérifiez les avertissements avant de décider quoi que ce soit sur le comportement spécifique aux binaires.

Le convertisseur émet un simple YAML sans détecter quel exécutable Compose est installé

Compose v2 — une réécriture Go livrée en tant que plugin Docker CLI, invoquée en tant que Docker Compose. Preuve : aucun exécutable Compose n'est appelé et la sortie est simple YAML ; Le convertisseur émet un simple YAML sans détecter quel exécutable Compose est installé. Jugez la sérialisation des choix exécutables à partir de son modèle. Citer en clair YAML et les commandes locales protège les types mais ne donne aucune preuve opérationnelle du comportement spécifique aux binaires.

La deuxième observation de sérialisation du flux de travail du développeur est de conserver pour cette section du flux de travail du développeur, la commande d'origine pour cette section du flux de travail du développeur et les avertissements à côté de cette section du flux de travail du développeur, ce fichier candidat que le résultat de la sérialisation du flux de travail du développeur sépare représenté pour cette configuration de la section du flux de travail du développeur du contexte absent pour cette section du flux de travail du développeur, les métadonnées d'image sont en dehors de la transformation de sérialisation du flux de travail du développeur. Cette sortie de choix exécutable sépare les paramètres du contexte indisponible. Gardez YAML et les commandes locales révisables et vérifiez indépendamment le comportement spécifique aux binaires.

Les différences de comportement entre les implémentations de Compose nécessitent leur propre documentation versionnée

Différences de comportement : séparateurs de noms de conteneurs, clé de version et indicateurs de ligne de commande déplacés. Preuve : les différences de nom et d'indicateur varient selon l'implémentation et la version ; Les différences de comportement entre les implémentations de Compose nécessitent leur propre documentation versionnée. Arrêtez-vous à l'exception du choix de l'exécutable au lieu de deviner. Tout ajout proche de YAML et de commandes locales nécessite une raison spécifique au déploiement liée au comportement spécifique au binaire.

Une autre contrainte d'exception du flux de travail du développeur est que pour cette section du flux de travail du développeur, conservez l'original de cette commande de section du flux de travail du développeur et les avertissements pour cette section du flux de travail du développeur à côté de ce fichier candidat. Conservez la commande de choix exécutable d'origine à côté des avertissements. La comparaison montre ce que contiennent les commandes simples YAML et locales et quelle décision de comportement spécifique au binaire reste manuelle.

La découverte d'exécutables est une vérification d'opérateur ; le convertisseur de navigateur n'exécute aucune commande

Les distinguer : la version docker compose, qui docker-compose et la cale de composition-switch. Preuve : les opérateurs peuvent effectuer des vérifications de version et de chemin en dehors de cette page ; La découverte d'exécutables est une vérification d'opérateur ; le convertisseur de navigateur n'exécute aucune des deux commandes. Créez l'exemple de choix exécutable à partir de noms synthétiques. Rendre chaque élément YAML et commandes locales traçable sans exposer les détails de comportement spécifiques aux binaires de production.

Le même exemple de flux de travail de développeur montre que pour cette section de flux de travail de développeur, conservez la commande originale de cette section de flux de travail de développeur et les avertissements pour cette section de flux de travail de développeur à côté de ce fichier candidat. Le fait de choix de l'exécutable apparié doit être visible en clair YAML et dans les commandes locales. Enregistrez cette ligne et évitez les hypothèses sur le comportement spécifique aux binaires.

Ce que cela ne couvre pas : implémentations de composition de Podman et autres outils qui lisent les fichiers Compose

Ce que ceci ne couvre pas : les implémentations de composition de Podman et d'autres outils qui lisent les fichiers Compose. Preuve : Podman et d'autres lecteurs peuvent interpréter différemment YAML accepté. Traduisez la conséquence du choix exécutable en une simple différence observable de YAML et de commandes locales. Docker possède le dernier verdict de comportement spécifique aux binaires.

L'implémentation des conséquences du flux de travail du développeur montre également. Une limite distincte de l'effet du flux de travail du développeur est que l'ancien historique de distribution Python ne provient pas ici. Preuve : l'historique de la distribution Python précédente ne provient pas d'ici. Répartissez les responsabilités de choix de l'exécutable : la conversion écrit des commandes simples YAML et locales, le référentiel supprime les secrets et les opérateurs valident le comportement spécifique aux binaires.

À retenir : utilisez le plugin, gardez le fichier conforme aux spécifications - et le convertisseur produit une définition de service dans Compose ordinaire YAML

À retenir : utilisez le plugin, gardez le fichier conforme aux spécifications - et le convertisseur produit une définition de service dans Compose YAML ordinaire. Preuve : identifiez la mise en œuvre réelle avant de faire confiance à la validation. Limitez la portée du choix de l'exécutable aux branches YAML et aux commandes locales affichées ici. Les formulaires voisins et les valeurs par défaut ne peuvent pas répondre aux questions de comportement spécifiques aux binaires.

Une limite de portée de flux de travail de développeur supplémentaire découle d'une limite distincte de limite de flux de travail de développeur est qu'aucun exécutable Compose n'est appelé et que la sortie est simple YAML. Preuve : aucun exécutable Compose n'est appelé et la sortie est simple YAML. Traitez cette limite de choix exécutable comme une exclusion. Préférez les YAML simples et précises et les commandes locales aux suppositions sur le comportement spécifique aux binaires.