Sdílet prostřednictvím


DockerCompose@0 – úloha Docker Compose v0

Sestavování, nabízení nebo spouštění vícekontenerových aplikací Dockeru Tuto úlohu použijte s Dockerem nebo registrem kontejneru Azure.

Důležité

Úloha DockerCompose@0 je zastaralá. Úloha používá docker-compose v1, který už od července 2023 neobdrží aktualizaci. Pokud chcete použít docker compose v2, použijte DockerCompose@1 úkol. Další informace najdete v tématu DockerCompose@0 používá Docker Compose v2 v režimu kompatibility v1.

Sestavování, nabízení nebo spouštění vícekontenerových aplikací Dockeru Tuto úlohu použijte s Dockerem nebo registrem kontejneru Azure.

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

Vstupy

containerregistrytype - typ registru kontejneru
string. Povinné. Povolené hodnoty: Azure Container Registry, Container Registry. Výchozí hodnota: Azure Container Registry.

Určuje typ služby Azure Container Registry, pokud používáte ACR. Zadejte typ registru kontejneru, pokud používáte jiný registr kontejneru.


dockerRegistryEndpoint - připojení ke službě Registru Dockeru
string. Volitelný. Používá se při containerregistrytype = Container Registry.

Určuje připojení služby registru Dockeru. Vyžaduje se, když se příkazy musí ověřit pomocí registru.


azureSubscription - předplatného Azure
Vstupní alias: azureSubscriptionEndpoint. string. Volitelný. Používá se při containerregistrytype = Azure Container Registry.

Určuje předplatné Azure. Název připojení ke službě Azure Pokud chcete připojení nastavit ručně, přečtěte si připojení ke službě Azure Resource Manager .


azureContainerRegistry - služby Azure Container Registry
string. Volitelný. Používá se při containerregistrytype = Azure Container Registry.

Určuje službu Azure Container Registry.


dockerComposeFile - soubor docker Compose
string. Povinné. Výchozí hodnota: **/docker-compose.yml.

Určuje cestu k souboru primárního souboru Docker Compose.


additionalDockerComposeFiles - další soubory Docker Compose
string.

Určuje další soubory Docker Compose, které se kombinují s primárním souborem Docker Compose. Relativní cesty se přeloží vzhledem k adresáři, který obsahuje primární soubor Docker Compose. Pokud zadaný soubor nebyl nalezen, bude ignorován. Zadejte každou cestu k souboru na novém řádku.


dockerComposeFileArgs - proměnné prostředí
string.

Určuje všechny nastavené proměnné prostředí.

Formátovat následujícím způsobem:

  • Vypíše každý name=value pár na novém řádku.
  • K zachování nových řádků použijte operátor | v YAML.

názvu projektu projectName -
string. Výchozí hodnota: $(Build.Repository.Name).

Určuje název projektu, který se má ve výchozím nastavení použít k pojmenování imagí a kontejnerů.


qualifyImageNames - opravňující názvy obrázků
boolean. Výchozí hodnota: true.

Ve výchozím nastavení určuje název hostitele připojení služby registru Dockeru.


action - akce
string. Povinné. Povolené hodnoty: Build services (image služby sestavení), Push services (image nabízených služeb), Run services (spouštění imagí služeb), Run a specific service (spuštění konkrétní image služby), Lock services (zamknutí imagí služby), Write service image digests, Combine configuration, Run a Docker Compose command. Výchozí hodnota: Run a Docker Compose command.

Určuje akci Docker Compose ze seznamu povolených hodnot.


additionalImageTags - další značky obrázků
string. Volitelný. Používá se při action = Build services || action = Push services.

Určuje další značky pro image Dockeru, které se vytvářejí nebo odsílají. Můžete zadat více značek oddělujících každý z nich pomocí odřádkování \n.


includeSourceTags - zahrnout zdrojové značky
boolean. Volitelný. Používá se při action = Build services || action = Push services. Výchozí hodnota: false.

Určuje značky Gitu při sestavování nebo odesílání imagí Dockeru.


includeLatestTag - zahrnout nejnovější značek
boolean. Volitelný. Používá se při action = Build services || action = Push services. Výchozí hodnota: false.

Určuje nejnovější značku při sestavování nebo odesílání imagí Dockeru.


buildImages - sestavení imagí
boolean. Volitelný. Používá se při action = Run services. Výchozí hodnota: true.

Určuje image sestavení před spuštěním kontejnerů služeb.


názvu služby serviceName -
string. Požadováno při action = Run a specific service.

Určuje název služby, kterou chcete spustit.


containerName - název kontejneru
string. Volitelný. Používá se při action = Run a specific service.

Určuje název kontejneru služby, který chcete použít.


ports - porty
string. Volitelný. Používá se při action = Run a specific service.

Určuje porty v kontejneru služby, které se mají publikovat na hostiteli. Přidejte každou vazbu host-port:container-port na nový řádek.


workingDirectory - pracovní adresář
Vstupní alias: workDir. string. Volitelný. Používá se při action = Run a specific service.

Určuje pracovní adresář kontejneru služby.


přepsání vstupního bodu entrypoint -
string. Volitelný. Používá se při action = Run a specific service.

Určuje hodnotu přepsání pro výchozí vstupní bod kontejneru služby.


containerCommand - command
string. Volitelný. Používá se při action = Run a specific service.

Určuje příkaz, který se má spustit v kontejneru služby. Pokud například obrázek obsahuje jednoduchou webovou aplikaci Python Flask, můžete zadat python app.py ke spuštění webové aplikace.


detached - Spustit na pozadí
boolean. Volitelný. Používá se při action = Run services || action = Run a specific service. Výchozí hodnota: true.

Určuje kontejnery služeb, které se mají spustit na pozadí.


abortOnContainerExit - přerušení při ukončení kontejneru
boolean. Volitelný. Používá se při action = Run services && detached == false. Výchozí hodnota: true.

Určuje všechny kontejnery, které by se měly zastavit při ukončení jakéhokoli kontejneru.


imageDigestComposeFile - souboru Digest Compose obrázku
string. Požadováno při action = Write service image digests. Výchozí hodnota: $(Build.StagingDirectory)/docker-compose.images.yml.

Určuje cestu k souboru Docker Compose, který se vytvoří a naplní hodnotou hash úložiště celé image každé služby v imagi Dockeru.


removeBuildOptions - odebrání možností sestavení
boolean. Volitelný. Používá se při action = Lock services || action = Combine configuration. Výchozí hodnota: false.

Určuje, jestli se možnosti sestavení mají odebrat z výstupního souboru Docker Compose.


baseResolveDirectory - základního překladu adresáře
string. Volitelný. Používá se při action = Lock services || action = Combine configuration.

Určuje základní adresář, ze kterého se mají přeložit relativní cesty ve výstupním souboru Docker Compose.


outputDockerComposeFile - výstupního souboru Docker Compose
string. Požadováno při action = Lock services || action = Combine configuration. Výchozí hodnota: $(Build.StagingDirectory)/docker-compose.yml.

Určuje cestu k výstupnímu souboru Docker Compose.


dockerComposeCommand - command
string. Požadováno při action = Run a Docker Compose command.

Určuje příkaz Docker Compose, který se má spouštět s argumenty. Například rm --all odebrání všech zastavených kontejnerů služby.


argumentů
string. Volitelný. Používá se při action != Lock services && action != Combine configuration && action != Write service image digests.

Určuje možnosti příkazu Docker Compose.

Příklad: Pro příkaz sestavení --pull --compress --parallel.


dockerHostEndpoint - připojení ke hostitelské službě Dockeru
string.

Určuje připojení hostitelské služby Dockeru. Výchozí hodnota je hostitel agenta.


nopIfNoDockerComposeFile - No-op, pokud žádný soubor Docker Compose
boolean. Výchozí hodnota: false.

Určuje hodnotu, která má úkol přeskočit, pokud soubor Docker Compose neexistuje. Tato možnost je užitečná, když úloha nabízí volitelné chování na základě existence souboru Docker Compose v úložišti.


requireAdditionalDockerComposeFiles - vyžadovat další soubory Docker Compose
boolean. Výchozí hodnota: false.

Určuje hodnotu, která vytvoří chybu, pokud další soubory Docker Compose neexistují. Tato možnost přepíše výchozí chování, které by ignorovalo soubor, pokud neexistuje.


currentWorkingDirectory - pracovní adresář
Vstupní alias: cwd. string. Výchozí hodnota: $(System.DefaultWorkingDirectory).

Určuje pracovní adresář pro příkaz Docker Compose.


dockerComposePath - spustitelná cesta docker Compose
string.

Určuje cestu, která určuje, jestli se používá spustitelný soubor docker-compose.


Možnosti ovládání úloh

Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace naleznete v tématu Možnosti ovládacího prvku a běžné vlastnosti úloh.

Výstupní proměnné

Tato úloha definuje následující výstupní proměnné, které můžete využívat v podřízených krocích, úlohách a fázích.

DockerComposeOutput
Cesta k souborům, které obsahují výstup příkazu. Může obsahovat více cest k souborům (oddělené znaky nového řádku), například příkaz dockerComposeRun (jeden pro spuštění a druhý pro down), dockerPush (jeden pro každou vloženou image), dockerBuild (samotný build a všechny příkazy značek) a dockerDigest (jeden pro každou načítanou image). Ostatní příkazy vypíše jenom jeden soubor.

Poznámky

Důležité

Úloha DockerCompose@0 je zastaralá. Úloha používá docker-compose v1, který už od července 2023 neobdrží aktualizaci. Pokud chcete použít docker compose v2, použijte DockerCompose@1 úkol. Další informace najdete v tématu DockerCompose@0 používá Docker Compose v2 v režimu kompatibility v1.

Pomocí této úlohy můžete sestavovat, odesílat nebo spouštět aplikace Dockeru s více kontejnery. Tuto úlohu použijte s registrem Dockeru nebo službou Azure Container Registry.

Příklady

Azure Container Registry (registr kontejnerů Azure)

Tento příklad YAML určuje vstupy pro 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)

Další registry kontejnerů

Hodnota containerregistrytype je vyžadována při použití jiného registru kontejneru než ACR. V tomto případě použijte containerregistrytype: Container Registry.

Tento příklad YAML určuje jiný registr kontejneru než ACR, kde Contoso je název připojení služby registru Dockeru pro registr kontejneru:

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

Vytváření imagí služeb

Tento příklad YAML sestaví image, kde je název image kvalifikovaný na základě vstupů souvisejících se službou 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)

Nabízení imagí služeb

Tento příklad YAML odešle image do registru kontejneru:

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

Spouštění imagí služeb

Tento příklad YAML spouští služby:

- 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

Spuštění konkrétní image služby

Tento příklad YAML spouští konkrétní službu:

- 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

Uzamčení imagí služeb

Tento příklad YAML uzamkne služby:

- 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

Zápis přehledů obrázků služby

Tento příklad YAML zapisuje přehledy obrazu služby:

- 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 

Kombinování konfigurace

Tento příklad YAML kombinuje konfigurace:

- 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

Spuštění příkazu Docker Compose

Tento příklad YAML spustí příkaz 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

Požadavky

Požadavek Popis
Typy kanálů YAML, klasické sestavení, klasická verze
Běží na Agent, DeploymentGroup
požadavky Žádný
možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
omezení příkazů Jakýkoliv
nastavitelné proměnné Jakýkoliv
Verze agenta Všechny podporované verze agenta.
Kategorie úkolu Stavět