Partager via


DockerCompose@0 - Tâche Docker Compose v0

Générez, envoyez ou exécutez des applications Docker à plusieurs conteneurs. Utilisez cette tâche avec Docker ou Azure Container Registry.

Important

La tâche DockerCompose@0 est déconseillée. La tâche utilise docker-compose v1 qui ne reçoit plus de mise à jour depuis juillet 2023. Pour utiliser docker compose v2, utilisez la tâche DockerCompose@1. Pour plus d’informations, consultez DockerCompose@0 utilise Docker Compose v2 en mode de compatibilité v1.

Générez, envoyez ou exécutez des applications Docker à plusieurs conteneurs. Utilisez cette tâche avec Docker ou Azure Container Registry.

Syntaxe

# Docker Compose v0
# Build, push or run multi-container Docker applications. Task can be used with Docker or Azure Container registry.
- task: DockerCompose@0
  inputs:
    containerregistrytype: 'Azure Container Registry' # 'Azure Container Registry' | 'Container Registry'. Required. Container Registry Type. Default: Azure Container Registry.
    #dockerRegistryEndpoint: # string. Optional. Use when containerregistrytype = Container Registry. Docker Registry Service Connection. 
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Optional. Use when containerregistrytype = Azure Container Registry. Azure subscription. 
    #azureContainerRegistry: # string. Optional. Use when containerregistrytype = Azure Container Registry. Azure Container Registry. 
    dockerComposeFile: '**/docker-compose.yml' # string. Required. Docker Compose File. Default: **/docker-compose.yml.
    #additionalDockerComposeFiles: # string. Additional Docker Compose Files. 
    #dockerComposeFileArgs: # string. Environment Variables. 
    #projectName: '$(Build.Repository.Name)' # string. Project Name. Default: $(Build.Repository.Name).
    #qualifyImageNames: true # boolean. Qualify Image Names. Default: true.
    action: 'Run a Docker Compose command' # 'Build services' | 'Push services' | 'Run services' | 'Run a specific service' | 'Lock services' | 'Write service image digests' | 'Combine configuration' | 'Run a Docker Compose command'. Required. Action. Default: Run a Docker Compose command.
    #additionalImageTags: # string. Optional. Use when action = Build services || action = Push services. Additional Image Tags. 
    #includeSourceTags: false # boolean. Optional. Use when action = Build services || action = Push services. Include Source Tags. Default: false.
    #includeLatestTag: false # boolean. Optional. Use when action = Build services || action = Push services. Include Latest Tag. Default: false.
    #buildImages: true # boolean. Optional. Use when action = Run services. Build Images. Default: true.
    #serviceName: # string. Required when action = Run a specific service. Service Name. 
    #containerName: # string. Optional. Use when action = Run a specific service. Container Name. 
    #ports: # string. Optional. Use when action = Run a specific service. Ports. 
    #workingDirectory: # string. Alias: workDir. Optional. Use when action = Run a specific service. Working Directory. 
    #entrypoint: # string. Optional. Use when action = Run a specific service. Entry Point Override. 
    #containerCommand: # string. Optional. Use when action = Run a specific service. Command. 
    #detached: true # boolean. Optional. Use when action = Run services || action = Run a specific service. Run in Background. Default: true.
    #abortOnContainerExit: true # boolean. Optional. Use when action = Run services && detached == false. Abort on Container Exit. Default: true.
    #imageDigestComposeFile: '$(Build.StagingDirectory)/docker-compose.images.yml' # string. Required when action = Write service image digests. Image Digest Compose File. Default: $(Build.StagingDirectory)/docker-compose.images.yml.
    #removeBuildOptions: false # boolean. Optional. Use when action = Lock services || action = Combine configuration. Remove Build Options. Default: false.
    #baseResolveDirectory: # string. Optional. Use when action = Lock services || action = Combine configuration. Base Resolve Directory. 
    #outputDockerComposeFile: '$(Build.StagingDirectory)/docker-compose.yml' # string. Required when action = Lock services || action = Combine configuration. Output Docker Compose File. Default: $(Build.StagingDirectory)/docker-compose.yml.
    #dockerComposeCommand: # string. Required when action = Run a Docker Compose command. Command. 
    #arguments: # string. Optional. Use when action != Lock services && action != Combine configuration && action != Write service image digests. Arguments. 
  # Advanced Options
    #dockerHostEndpoint: # string. Docker Host Service Connection. 
    #nopIfNoDockerComposeFile: false # boolean. No-op if no Docker Compose File. Default: false.
    #requireAdditionalDockerComposeFiles: false # boolean. Require Additional Docker Compose Files. Default: false.
    #currentWorkingDirectory: '$(System.DefaultWorkingDirectory)' # string. Alias: cwd. Working Directory. Default: $(System.DefaultWorkingDirectory).
    #dockerComposePath: # string. Docker Compose executable Path.

Entrées

containerregistrytype - type de registre de conteneurs
string. Obligatoire. Valeurs autorisées : Azure Container Registry, Container Registry. Valeur par défaut : Azure Container Registry.

Spécifie un type Azure Container Registry si vous utilisez ACR. Spécifiez un type Container Registry si vous utilisez un autre registre de conteneurs.


dockerRegistryEndpoint - connexion au service De Registre Docker
string. Optionnel. Utilisez quand containerregistrytype = Container Registry.

Spécifie une connexion de service de Registre Docker. Obligatoire lorsque les commandes doivent s’authentifier à l’aide d’un registre.


azureSubscription - abonnement Azure
Alias d’entrée : azureSubscriptionEndpoint. string. Optionnel. Utilisez quand containerregistrytype = Azure Container Registry.

Spécifie un abonnement Azure. Nom de la connexion de service Azure. Pour configurer manuellement la connexion, consultez connexion de service Azure Resource Manager.


azureContainerRegistry - Azure Container Registry
string. Optionnel. Utilisez quand containerregistrytype = Azure Container Registry.

Spécifie un Registre de conteneurs Azure.


dockerComposeFile - fichier Docker Compose
string. Obligatoire. Valeur par défaut : **/docker-compose.yml.

Spécifie le chemin d’accès au fichier Docker Compose principal.


additionalDockerComposeFiles - fichiers Docker Compose supplémentaires
string.

Spécifie des fichiers Docker Compose supplémentaires combinés au fichier Docker Compose principal. Les chemins relatifs sont résolus par rapport au répertoire contenant le fichier Docker Compose principal. Si un fichier spécifié est introuvable, il est ignoré. Spécifiez chaque chemin d’accès de fichier sur une nouvelle ligne.


variables d’environnement dockerComposeFileArgs -
string.

Spécifie toutes les variables d’environnement définies.

Format comme suit :

  • Répertoriez chaque paire name=value sur une nouvelle ligne.
  • Utilisez l’opérateur | dans YAML pour conserver de nouvelles lignes.

projectName - nom du projet
string. Valeur par défaut : $(Build.Repository.Name).

Spécifie le nom du projet à utiliser par défaut pour nommer des images et des conteneurs.


qualifyImageNames - qualifier les noms d’images
boolean. Valeur par défaut : true.

Par défaut, spécifie le nom d’hôte de la connexion du service de Registre Docker.


action - action
string. Obligatoire. Valeurs autorisées : Build services (Générer des images de service), Push services (images de service Push), Run services (Exécuter des images de service), Run a specific service (Exécuter une image de service spécifique), Lock services (verrouiller les images de service), Write service image digests, Combine configuration, Run a Docker Compose command. Valeur par défaut : Run a Docker Compose command.

Spécifie une action Docker Compose dans la liste des valeurs autorisées.


additionalImageTags - balises d’image supplémentaires
string. Optionnel. Utilisez quand action = Build services || action = Push services.

Spécifie des balises supplémentaires pour les images Docker en cours de génération ou push. Vous pouvez spécifier plusieurs balises séparant chacune d’elles par un flux de ligne \n.


includeSourceTags - inclure des balises sources
boolean. Optionnel. Utilisez quand action = Build services || action = Push services. Valeur par défaut : false.

Spécifie des balises Git lors de la génération ou de l’envoi (push) d’images Docker.


includeLatestTag - Inclure la dernière de balise
boolean. Optionnel. Utilisez quand action = Build services || action = Push services. Valeur par défaut : false.

Spécifie la balise de la plus récente lors de la génération ou de l’envoi (push) d’images Docker.


buildImages - générer des images
boolean. Optionnel. Utilisez quand action = Run services. Valeur par défaut : true.

Spécifie les images de génération avant de démarrer les conteneurs de service.


serviceName - nom du service
string. Obligatoire lorsque action = Run a specific service.

Spécifie le nom du service que vous souhaitez exécuter.


containerName - nom de conteneur
string. Optionnel. Utilisez quand action = Run a specific service.

Spécifie le nom du conteneur de service que vous souhaitez utiliser.


ports ports -
string. Optionnel. Utilisez quand action = Run a specific service.

Spécifie les ports du conteneur de service à publier sur l’hôte. Ajoutez chaque liaison host-port:container-port sur une nouvelle ligne.


workingDirectory - répertoire de travail
Alias d’entrée : workDir. string. Optionnel. Utilisez quand action = Run a specific service.

Spécifie le répertoire de travail du conteneur de service.


remplacement de point d’entrée entrypoint -
string. Optionnel. Utilisez quand action = Run a specific service.

Spécifie une valeur de remplacement pour le point d’entrée par défaut du conteneur de service.


containerCommand - commande
string. Optionnel. Utilisez quand action = Run a specific service.

Spécifie la commande à exécuter dans le conteneur de service. Par exemple, si l’image contient une application web Python Flask simple, vous pouvez spécifier python app.py pour lancer l’application web.


detached - Exécuter en arrière-plan
boolean. Optionnel. Utilisez quand action = Run services || action = Run a specific service. Valeur par défaut : true.

Spécifie les conteneurs de service à exécuter en arrière-plan.


abortOnContainerExit - abandonner le de sortie du conteneur
boolean. Optionnel. Utilisez quand action = Run services && detached == false. Valeur par défaut : true.

Spécifie tous les conteneurs qui doivent s’arrêter lorsqu’un conteneur se ferme.


imageDigestComposeFile - fichier de composition de synthèse d’images
string. Obligatoire lorsque action = Write service image digests. Valeur par défaut : $(Build.StagingDirectory)/docker-compose.images.yml.

Spécifie le chemin d’accès à un fichier Docker Compose créé et rempli avec les synthèses de référentiel d’images complètes de l’image Docker de chaque service.


removeBuildOptions - Supprimer les options de génération
boolean. Optionnel. Utilisez quand action = Lock services || action = Combine configuration. Valeur par défaut : false.

Spécifie si les options de génération doivent être supprimées du fichier Docker Compose de sortie.


baseResolveDirectory - d’annuaire de résolution de base
string. Optionnel. Utilisez quand action = Lock services || action = Combine configuration.

Spécifie le répertoire de base à partir duquel les chemins relatifs dans le fichier Docker Compose de sortie doivent être résolus.


outputDockerComposeFile - fichier Docker Compose de sortie
string. Obligatoire lorsque action = Lock services || action = Combine configuration. Valeur par défaut : $(Build.StagingDirectory)/docker-compose.yml.

Spécifie le chemin d’accès à un fichier Docker Compose de sortie.


dockerComposeCommand - commande
string. Obligatoire lorsque action = Run a Docker Compose command.

Spécifie la commande Docker Compose à exécuter avec des arguments. Par exemple, rm --all supprimer tous les conteneurs de service arrêtés.


arguments - arguments
string. Optionnel. Utilisez quand action != Lock services && action != Combine configuration && action != Write service image digests.

Spécifie les options de commande Docker Compose.

Exemple : Pour la commande build, --pull --compress --parallel.


dockerHostEndpoint - connexion au service hôte Docker
string.

Spécifie une connexion de service hôte Docker. La valeur par défaut est l’hôte de l’agent.


nopIfNoDockerComposeFile - aucune opération si aucun fichier Docker Compose n'
boolean. Valeur par défaut : false.

Spécifie une valeur pour ignorer la tâche si le fichier Docker Compose n’existe pas. Cette option est utile lorsque la tâche offre un comportement facultatif en fonction de l’existence d’un fichier Docker Compose dans le référentiel.


requireAdditionalDockerComposeFiles - exiger des fichiers Docker Compose supplémentaires
boolean. Valeur par défaut : false.

Spécifie une valeur pour générer une erreur si les fichiers Docker Compose supplémentaires n’existent pas. Cette option remplace le comportement par défaut qui ignorerait un fichier s’il n’existe pas.


currentWorkingDirectory - répertoire de travail
Alias d’entrée : cwd. string. Valeur par défaut : $(System.DefaultWorkingDirectory).

Spécifie le répertoire de travail de la commande Docker Compose.


dockerComposePath - chemin d’accès exécutable Docker Compose
string.

Spécifie un chemin d’accès pour déterminer si l’exécutable docker-compose est utilisé.


Options de contrôle de la tâche

Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâches. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.

Variables de sortie

Cette tâche définit les variables de sortie suivantes, que vous pouvez utiliser en aval, les travaux et les étapes.

DockerComposeOutput
Chemin d’accès aux fichiers qui contiennent la sortie de la commande. Cela peut contenir plusieurs chemins d’accès de fichier (séparés par des caractères de nouvelle ligne) tels que la commande dockerComposeRun (une pour l’exécution et l’autre pour le bas), dockerPush (un pour chaque image envoyée), dockerBuild (la build elle-même et toutes les commandes de balise) et dockerDigest (un pour chaque image extraite). Les autres commandes ne génèrent qu’un seul fichier.

Remarques

Important

La tâche DockerCompose@0 est déconseillée. La tâche utilise docker-compose v1 qui ne reçoit plus de mise à jour depuis juillet 2023. Pour utiliser docker compose v2, utilisez la tâche DockerCompose@1. Pour plus d’informations, consultez DockerCompose@0 utilise Docker Compose v2 en mode de compatibilité v1.

Utilisez cette tâche pour générer, envoyer (push) ou exécuter des applications Docker à plusieurs conteneurs. Utilisez cette tâche avec un registre Docker ou Azure Container Registry.

Exemples

Registre de conteneurs Azure

Cet exemple YAML spécifie les entrées pour Azure Container Registry :

variables:
  azureContainerRegistry: Contoso.azurecr.io
  azureSubscriptionEndpoint: Contoso
steps:
- task: DockerCompose@0
  displayName: Container registry login
  inputs:
    containerregistrytype: Azure Container Registry
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureContainerRegistry: $(azureContainerRegistry)

Autres registres de conteneurs

La valeur containerregistrytype est requise lors de l’utilisation d’un registre de conteneurs autre qu’ACR. Utilisez containerregistrytype: Container Registry dans ce cas.

Cet exemple YAML spécifie un registre de conteneurs autre qu’ACR, où Contoso est le nom de la connexion de service de Registre Docker pour le registre de conteneurs :

- task: DockerCompose@0
  displayName: Container registry login
  inputs:
    containerregistrytype: Container Registry
    dockerRegistryEndpoint: Contoso

Créer des images de service

Cet exemple YAML génère l’image où le nom de l’image est qualifié en fonction des entrées liées à Azure Container Registry :

- task: DockerCompose@0
  displayName: Build services
  inputs:
    action: Build services
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureContainerRegistry: $(azureContainerRegistry)
    dockerComposeFile: docker-compose.yml
    projectName: $(Build.Repository.Name)
    qualifyImageNames: true
    additionalImageTags: $(Build.BuildId)
    dockerComposeFileArgs: |
      firstArg=$(firstArg)
      secondArg=$(secondArg)

Images de service Push

Cet exemple YAML envoie une image à un registre de conteneurs :

- task: DockerCompose@0
  displayName: Push services
  inputs:
    action: Push services
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureContainerRegistry: $(azureContainerRegistry)
    dockerComposeFile: docker-compose.yml
    projectName: $(Build.Repository.Name)
    qualifyImageNames: true
    additionalImageTags: $(Build.BuildId)

Exécuter des images de service

Cet exemple YAML exécute des services :

- task: DockerCompose@0
  displayName: Run services
  inputs:
    action: Run services
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureContainerRegistry: $(azureContainerRegistry)
    dockerComposeFile: docker-compose.ci.build.yml
    projectName: $(Build.Repository.Name)
    qualifyImageNames: true
    buildImages: true
    abortOnContainerExit: true
    detached: true

Exécuter une image de service spécifique

Cet exemple YAML exécute un service spécifique :

- task: DockerCompose@0
  displayName: Run a specific service
  inputs:
    action: Run a specific service
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureContainerRegistry: $(azureContainerRegistry)
    dockerComposeFile: docker-compose.yml
    projectName: $(Build.Repository.Name)
    qualifyImageNames: true
    serviceName: myhealth.web
    ports: 80:80
    detached: true

Verrouiller les images de service

Cet exemple YAML verrouille les services :

- task: DockerCompose@0
  displayName: Lock services
  inputs:
    action: Lock services
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureContainerRegistry: $(azureContainerRegistry)
    dockerComposeFile: docker-compose.yml
    projectName: $(Build.Repository.Name)
    qualifyImageNames: true
    outputDockerComposeFile: $(Build.StagingDirectory)/docker-compose.yml

Écrire des synthèses d’images de service

Cet exemple YAML écrit des synthèses d’images de service :

- task: DockerCompose@0
  displayName: Write service image digests
  inputs:
    action: Write service image digests
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureContainerRegistry: $(azureContainerRegistry)
    dockerComposeFile: docker-compose.yml
    projectName: $(Build.Repository.Name)
    qualifyImageNames: true
    imageDigestComposeFile: $(Build.StagingDirectory)/docker-compose.images.yml 

Combiner la configuration

Cet exemple YAML combine les configurations :

- task: DockerCompose@0
  displayName: Combine configuration
  inputs:
    action: Combine configuration
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureContainerRegistry: $(azureContainerRegistry)
    dockerComposeFile: docker-compose.yml
    additionalDockerComposeFiles: docker-compose.override.yml
    projectName: $(Build.Repository.Name)
    qualifyImageNames: true
    outputDockerComposeFile: $(Build.StagingDirectory)/docker-compose.yml

Exécuter une commande Docker Compose

Cet exemple YAML exécute une commande Docker Compose :

- task: DockerCompose@0
  displayName: Run a Docker Compose command
  inputs:
    action: Run a Docker Compose command
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureContainerRegistry: $(azureContainerRegistry)
    dockerComposeFile: docker-compose.yml 
    projectName: $(Build.Repository.Name)
    qualifyImageNames: true
    dockerComposeCommand: rm

Spécifications

Besoin Descriptif
Types de pipelines YAML, Build Classique, Version Classique
Exécutions sur Agent, DeploymentGroup
demandes Aucun
fonctionnalités de Cette tâche ne répond à aucune demande de tâches ultérieures dans le travail.
restrictions de commande N'importe quel
variables settables N'importe quel
Version de l’agent Toutes les versions de l’agent prises en charge.
Catégorie de tâche Construire