Condividi tramite


DockerCompose@0 - Attività Docker Compose v0

Compilare, eseguire il push o l'esecuzione di applicazioni Docker multi-contenitore. Usare questa attività con Docker o il Registro Azure Container.

Importante

L'attività DockerCompose@0 è deprecata. L'attività usa docker-compose v1 che non riceve più l'aggiornamento a partire da luglio 2023. Per usare docker compose v2, usare l'attività DockerCompose@1. Per altre informazioni, vedere DockerCompose@0 usa Docker Compose v2 in modalità di compatibilità v1.

Compilare, eseguire il push o l'esecuzione di applicazioni Docker multi-contenitore. Usare questa attività con Docker o il Registro Azure Container.

Sintassi

# 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.
# 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).

Ingressi dati

tipo di registro contenitori containerregistrytype -
string. Obbligatorio. Valori consentiti: Azure Container Registry, Container Registry. Valore predefinito: Azure Container Registry

Specifica un tipo di Registro Azure Container se si usa Registro Azure Container. Specificare un tipo di Registro Contenitori se si usa un altro registro contenitori.


dockerRegistryEndpoint - di connessione al servizio registro Docker
string. Opzionale. Usare quando containerregistrytype = Container Registry.

Specifica una connessione al servizio del Registro di sistema Docker. Obbligatorio quando i comandi devono eseguire l'autenticazione usando un registro.


azureSubscription - sottoscrizione di Azure
Alias di input: azureSubscriptionEndpoint. string. Opzionale. Usare quando containerregistrytype = Azure Container Registry.

Specifica una sottoscrizione di Azure. Nome della connessione al servizio di Azure. Per configurare manualmente la connessione, vedere connessione al servizio Azure Resource Manager.


azureContainerRegistry - registro Azure Container
string. Opzionale. Usare quando containerregistrytype = Azure Container Registry.

Specifica un Registro Azure Container.


dockerComposeFile - docker Compose File
string. Obbligatorio. Valore predefinito: **/docker-compose.yml

Specifica il percorso del file del file Docker Compose primario.


additionalDockerComposeFiles - file docker compose aggiuntivi
string.

Specifica altri file Docker Compose combinati con il file Docker Compose primario. I percorsi relativi vengono risolti in relazione alla directory contenente il file Docker Compose primario. Se non viene trovato un file specificato, viene ignorato. Specificare ogni percorso di file in una nuova riga.


variabili di ambiente dockerComposeFileArgs -
string.

Specifica le variabili di ambiente impostate.

Formattare come segue:

  • Elencare ogni coppia di name=value in una nuova riga.
  • Usare l'operatore | in YAML per mantenere nuove righe.

projectName - nome progetto
string. Valore predefinito: $(Build.Repository.Name)

Specifica il nome del progetto da usare per impostazione predefinita per denominare immagini e contenitori.


qualifyImageNames - qualificare i nomi delle immagini
boolean. Valore predefinito: true

Per impostazione predefinita, specifica il nome host della connessione al servizio registro Docker.


action - 'azione
string. Obbligatorio. Valori consentiti: Build services (immagini del servizio di compilazione), Push services (immagini del servizio push), Run services (esegui immagini del servizio), Run a specific service (eseguire un'immagine del servizio specifica), Lock services (immagini del servizio di blocco), Write service image digests, Combine configuration, Run a Docker Compose command. Valore predefinito: Run a Docker Compose command

Specifica un'azione Docker Compose dall'elenco di valori consentiti.


additionalImageTags - tag di immagine aggiuntivi
string. Opzionale. Usare quando action = Build services || action = Push services.

Specifica tag aggiuntivi per le immagini Docker compilate o sottoposte a push. È possibile specificare più tag separandoli con un feed di riga \n.


includeSourceTags - includere tag di origine
boolean. Opzionale. Usare quando action = Build services || action = Push services. Valore predefinito: false

Specifica i tag Git durante la compilazione o il push di immagini Docker.


includeLatestTag - includi tag più recenti
boolean. Opzionale. Usare quando action = Build services || action = Push services. Valore predefinito: false

Specifica il tag più recente durante la compilazione o il push di immagini Docker.


buildImages - creare immagini
boolean. Opzionale. Usare quando action = Run services. Valore predefinito: true

Specifica le immagini di compilazione prima di avviare i contenitori del servizio.


serviceName - nome del servizio
string. Obbligatorio quando action = Run a specific service.

Specifica il nome del servizio da eseguire.


nome contenitore containerName -
string. Opzionale. Usare quando action = Run a specific service.

Specifica il nome del contenitore del servizio da usare.


ports - porte
string. Opzionale. Usare quando action = Run a specific service.

Specifica le porte nel contenitore del servizio da pubblicare nell'host. Aggiungere ogni binding host-port:container-port su una nuova riga.


workingDirectory - directory di lavoro
Alias di input: workDir. string. Opzionale. Usare quando action = Run a specific service.

Specifica la directory di lavoro per il contenitore del servizio.


entrypoint - override del punto di ingresso
string. Opzionale. Usare quando action = Run a specific service.

Specifica un valore di override per il punto di ingresso predefinito del contenitore del servizio.


containerCommand - comando
string. Opzionale. Usare quando action = Run a specific service.

Specifica il comando da eseguire nel contenitore del servizio. Ad esempio, se l'immagine contiene una semplice applicazione Web Python Flask, è possibile specificare python app.py per avviare l'applicazione Web.


detached - esecuzione in background
boolean. Opzionale. Usare quando action = Run services || action = Run a specific service. Valore predefinito: true

Specifica i contenitori del servizio da eseguire in background.


abortOnContainerExit - interruzione nel di uscita del contenitore
boolean. Opzionale. Usare quando action = Run services && detached == false. Valore predefinito: true

Specifica tutti i contenitori che devono essere interrotti quando un contenitore viene chiuso.


imageDigestComposeFile - file di composizione del digest immagine
string. Obbligatorio quando action = Write service image digests. Valore predefinito: $(Build.StagingDirectory)/docker-compose.images.yml

Specifica il percorso di un file Docker Compose creato e popolato con i digest completi del repository di immagini dell'immagine Docker di ogni servizio.


removeBuildOptions - Rimuovere le opzioni di compilazione
boolean. Opzionale. Usare quando action = Lock services || action = Combine configuration. Valore predefinito: false

Specifica se le opzioni di compilazione devono essere rimosse dal file Docker Compose di output.


baseResolveDirectory - di risoluzione di base
string. Opzionale. Usare quando action = Lock services || action = Combine configuration.

Specifica la directory di base da cui devono essere risolti i percorsi relativi nel file Docker Compose di output.


outputDockerComposeFile - file Docker Compose
string. Obbligatorio quando action = Lock services || action = Combine configuration. Valore predefinito: $(Build.StagingDirectory)/docker-compose.yml

Specifica il percorso di un file Docker Compose di output.


dockerComposeCommand - comando
string. Obbligatorio quando action = Run a Docker Compose command.

Specifica il comando Docker Compose da eseguire con argomenti. Ad esempio, rm --all rimuovere tutti i contenitori di servizi arrestati.


arguments - argomenti
string. Opzionale. Usare quando action != Lock services && action != Combine configuration && action != Write service image digests.

Specifica le opzioni del comando Docker Compose.

Esempio: per il comando di compilazione, --pull --compress --parallel.


dockerHostEndpoint - connessione al servizio host Docker
string.

Specifica una connessione al servizio host Docker. L'impostazione predefinita è l'host dell'agente.


nopIfNoDockerComposeFile - No-op se non è file Docker Compose
boolean. Valore predefinito: false

Specifica un valore per ignorare l'attività se il file Docker Compose non esiste. Questa opzione è utile quando l'attività offre un comportamento facoltativo in base all'esistenza di un file Docker Compose nel repository.


requireAdditionalDockerComposeFiles - richiedi file docker compose aggiuntivi
boolean. Valore predefinito: false

Specifica un valore per generare un errore se i file Docker Compose aggiuntivi non esistono. Questa opzione sostituisce il comportamento predefinito che ignora un file se non esiste.


currentWorkingDirectory - directory di lavoro
Alias di input: cwd. string. Valore predefinito: $(System.DefaultWorkingDirectory)

Specifica la directory di lavoro per il comando Docker Compose.


dockerComposePath - percorso eseguibile di Docker Compose
string.

Specifica un percorso per determinare se viene usato l'eseguibile docker-compose.


Opzioni di controllo delle attività

Tutte le attività dispongono di opzioni di controllo oltre ai relativi input attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.

Variabili di output

Questa attività definisce le variabili di output seguenti , che è possibile utilizzare nei passaggi downstream, nei processi e nelle fasi.

DockerComposeOutput
Percorso dei file che contengono l'output del comando. Può contenere più percorsi di file (separati da caratteri di nuova riga), ad esempio il comando dockerComposeRun (uno per l'esecuzione e uno per il basso), dockerPush (uno per ogni immagine inserita), dockerBuild (la compilazione stessa e tutti i comandi tag) e dockerDigest (uno per ogni immagine estratta). Gli altri comandi generano solo un file.

Osservazioni:

Importante

L'attività DockerCompose@0 è deprecata. L'attività usa docker-compose v1 che non riceve più l'aggiornamento a partire da luglio 2023. Per usare docker compose v2, usare l'attività DockerCompose@1. Per altre informazioni, vedere DockerCompose@0 usa Docker Compose v2 in modalità di compatibilità v1.

Usare questa attività per compilare, eseguire il push o l'esecuzione di applicazioni Docker multi-contenitore. Usare questa attività con un registro Docker o un Registro Azure Container.

Esempi

Registro dei container di Azure

Questo esempio YAML specifica gli input per Registro Azure Container:

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

Altri registri contenitori

Il valore containerregistrytype è necessario quando si usa un registro contenitori diverso da Registro Azure Container. Usare containerregistrytype: Container Registry in questo caso.

Questo esempio YAML specifica un registro contenitori diverso da Registro Azure Container in cui Contoso è il nome della connessione del servizio registro Docker per il registro contenitori:

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

Creare immagini del servizio

Questo esempio YAML compila l'immagine in cui il nome dell'immagine è qualificato in base agli input correlati a Registro Azure Container:

- 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)

Eseguire il push delle immagini del servizio

Questo esempio YAML esegue il push di un'immagine in un registro contenitori:

- 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)

Eseguire immagini del servizio

Questo esempio YAML esegue i servizi:

- 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

Eseguire un'immagine del servizio specifica

Questo esempio YAML esegue un servizio specifico:

- 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

Bloccare le immagini del servizio

Questo esempio YAML blocca i servizi:

- 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

Scrivere digest dell'immagine del servizio

Questo esempio YAML scrive digest dell'immagine del servizio:

- 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 

Combinare la configurazione

Questo esempio YAML combina le configurazioni:

- 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

Eseguire un comando Docker Compose

Questo esempio YAML esegue un comando 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

Requisiti

Requisito Descrizione
Tipi di pipeline YAML, build classica, versione classica
Viene eseguito in Agente, DeploymentGroup
richieste Nessuno
funzionalità di Questa attività non soddisfa alcuna richiesta di attività successive nel processo.
restrizioni dei comandi Qualunque
variabili impostabili Qualunque
Versione dell'agente Tutte le versioni dell'agente supportate.
Categoria attività Costruire