Поделиться через


DockerCompose@0 — задача Docker Compose v0

Создание, отправка или запуск многоконтейнерных приложений Docker. Используйте эту задачу с Docker или реестром контейнеров Azure.

Это важно

Задача DockerCompose@0 устарела. Задача использует docker-compose версии 1, которая больше не получает обновления с июля 2023 года. Чтобы использовать docker Compose версии 2, используйте задачу DockerCompose@1. Дополнительные сведения см. в DockerCompose@0 использовании Docker Compose версии 2 в режиме совместимости версии 1.

Создание, отправка или запуск многоконтейнерных приложений Docker. Используйте эту задачу с Docker или реестром контейнеров Azure.

Синтаксис

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

Входные данные

типа реестра контейнеров containerregistrytype -
string. Обязательное. Допустимые значения: Azure Container Registry, Container Registry. Значение по умолчанию: Azure Container Registry.

Указывает тип реестра контейнеров Azure при использовании ACR. Укажите тип реестра контейнеров, если используется любой другой реестр контейнеров.


dockerRegistryEndpoint - подключение службы реестра Docker
string. Необязательно. Используется при containerregistrytype = Container Registry.

Указывает подключение службы реестра Docker. Требуется, когда командам требуется пройти проверку подлинности с помощью реестра.


azureSubscription - подписке Azure
Псевдоним ввода: azureSubscriptionEndpoint. string. Необязательно. Используется при containerregistrytype = Azure Container Registry.

Указывает подписку Azure. Имя подключения службы Azure. Сведения о настройке подключения вручную см. в подключении службы Azure Resource Manager.


реестра контейнеров Azure azureContainerRegistry -
string. Необязательно. Используется при containerregistrytype = Azure Container Registry.

Указывает реестр контейнеров Azure.


dockerComposeFile - Docker Compose File
string. Обязательное. Значение по умолчанию: **/docker-compose.yml.

Указывает путь к основному файлу Docker Compose.


additionalDockerComposeFiles - дополнительные файлы Docker Compose
string.

Указывает дополнительные файлы Docker Compose, объединенные с основным файлом Docker Compose. Относительные пути разрешаются относительно каталога, содержащего основной файл Docker Compose. Если указанный файл не найден, он игнорируется. Укажите каждый путь к файлу в новой строке.


переменных среды dockerComposeFileArgs -
string.

Указывает все заданные переменные среды.

Формат следующим образом:

  • Вывод списка каждой пары name=value в новой строке.
  • Используйте оператор | в YAML для сохранения новых строк.

имени проекта projectName -
string. Значение по умолчанию: $(Build.Repository.Name).

Указывает имя проекта, используемое по умолчанию для имен образов и контейнеров.


qualifyImageNames - квалифицировать имена изображений
boolean. Значение по умолчанию: true.

По умолчанию задает имя узла подключения службы реестра Docker.


action - действие
string. Обязательное. Допустимые значения: Build services (образы служб сборки), Push services (образы push-службы), Run services (запуск образов служб), Run a specific service (запуск определенного образа службы), Lock services (образы службы блокировки), Write service image digests, Combine configuration, Run a Docker Compose command. Значение по умолчанию: Run a Docker Compose command.

Указывает действие Docker Compose из списка разрешенных значений.


additionalImageTags - дополнительные теги изображений
string. Необязательно. Используется при action = Build services || action = Push services.

Задает дополнительные теги для создаваемых или отправляемых образов Docker. Можно указать несколько тегов, разделяющих каждый с \nвеб-канала строки.


includeSourceTags - включить исходные теги
boolean. Необязательно. Используется при action = Build services || action = Push services. Значение по умолчанию: false.

Указывает теги Git при создании или отправке образов Docker.


includeLatestTag - включить последний тег
boolean. Необязательно. Используется при action = Build services || action = Push services. Значение по умолчанию: false.

Указывает последний тег при создании или отправке образов Docker.


buildImages - сборки образов
boolean. Необязательно. Используется при action = Run services. Значение по умолчанию: true.

Указывает образы сборки перед запуском контейнеров служб.


имени службы serviceName -
string. Требуется, если action = Run a specific service.

Указывает имя службы, которую требуется запустить.


имени контейнера containerName -
string. Необязательно. Используется при action = Run a specific service.

Указывает имя контейнера службы, который требуется использовать.


Портыports -
string. Необязательно. Используется при action = Run a specific service.

Указывает порты в контейнере службы для публикации на узле. Добавьте каждую host-port:container-port привязку в новую строку.


workingDirectory - рабочий каталог
Псевдоним ввода: workDir. string. Необязательно. Используется при action = Run a specific service.

Указывает рабочий каталог для контейнера службы.


entrypoint - переопределение точки входа
string. Необязательно. Используется при action = Run a specific service.

Задает переопределение для точки входа по умолчанию контейнера службы.


Команда containerCommand -
string. Необязательно. Используется при action = Run a specific service.

Указывает команду, выполняемую в контейнере службы. Например, если изображение содержит простое веб-приложение Python Flask, можно указать python app.py для запуска веб-приложения.


detached - запуск в фоновом
boolean. Необязательно. Используется при action = Run services || action = Run a specific service. Значение по умолчанию: true.

Указывает контейнеры служб, выполняемые в фоновом режиме.


abortOnContainerExit - прерывание при выходе контейнера
boolean. Необязательно. Используется при action = Run services && detached == false. Значение по умолчанию: true.

Указывает все контейнеры, которые должны останавливаться при выходе из любого контейнера.


imageDigestComposeFile - файла создания образов
string. Требуется, если action = Write service image digests. Значение по умолчанию: $(Build.StagingDirectory)/docker-compose.images.yml.

Указывает путь к созданному файлу Docker Compose, который заполняется полными дайджестами репозитория образов каждого образа Docker.


removeBuildOptions - удаление параметров сборки
boolean. Необязательно. Используется при action = Lock services || action = Combine configuration. Значение по умолчанию: false.

Указывает, следует ли удалять параметры сборки из выходного файла Docker Compose.


базового разрешения каталога baseResolveDirectory -
string. Необязательно. Используется при action = Lock services || action = Combine configuration.

Указывает базовый каталог, из которого должны быть разрешены относительные пути в выходном файле Docker Compose.


outputDockerComposeFile - выходных данных Docker Compose File
string. Требуется, если action = Lock services || action = Combine configuration. Значение по умолчанию: $(Build.StagingDirectory)/docker-compose.yml.

Указывает путь к выходному файлу Docker Compose.


Команда dockerComposeCommand -
string. Требуется, если action = Run a Docker Compose command.

Указывает команду Docker Compose для выполнения с аргументами. Например, rm --all удалить все остановленные контейнеры служб.


arguments - аргументы
string. Необязательно. Используется при action != Lock services && action != Combine configuration && action != Write service image digests.

Задает параметры команды Docker Compose.

Пример: для команды сборки --pull --compress --parallel.


dockerHostEndpoint - подключение службы узла Docker
string.

Указывает подключение службы узла Docker. По умолчанию используется узел агента.


nopIfNoDockerComposeFile - No-op, если файл Docker Compose
boolean. Значение по умолчанию: false.

Указывает значение для пропуска задачи, если файл Docker Compose не существует. Этот параметр полезен, если задача предлагает необязательное поведение на основе существования файла Docker Compose в репозитории.


requireAdditionalDockerComposeFiles - требовать дополнительные файлы Docker Compose
boolean. Значение по умолчанию: false.

Указывает значение для создания ошибки, если дополнительные файлы Docker Compose не существуют. Этот параметр переопределяет поведение по умолчанию, которое будет игнорировать файл, если он не существует.


currentWorkingDirectory - рабочий каталог
Псевдоним ввода: cwd. string. Значение по умолчанию: $(System.DefaultWorkingDirectory).

Указывает рабочий каталог для команды Docker Compose.


dockerComposePath - Путь исполняемого файла Docker Compose
string.

Указывает путь для определения того, используется ли исполняемый файл docker-compose.


Параметры управления задачами

Помимо входных данных, все задачи имеют параметры управления. Дополнительные сведения см. в разделе Параметры управления и общие свойства задач.

Выходные переменные

Эта задача определяет следующие выходные переменные, которые можно использовать в подчиненных шагах, заданиях и этапах.

DockerComposeOutput
Путь к файлам, содержащим выходные данные команды. Это может содержать несколько путей к файлам (разделенных новыми символами), таких как команда dockerComposeRun (одна для запуска и одна для вниз), dockerPush (по одному для каждого изображения, отправленного на каждое изображение), dockerBuild (сама сборка и все команды тегов) и dockerDigest (по одному для каждого изображения извлечено). Другие команды выводит только один файл.

Замечания

Это важно

Задача DockerCompose@0 устарела. Задача использует docker-compose версии 1, которая больше не получает обновления с июля 2023 года. Чтобы использовать docker Compose версии 2, используйте задачу DockerCompose@1. Дополнительные сведения см. в DockerCompose@0 использовании Docker Compose версии 2 в режиме совместимости версии 1.

Используйте эту задачу для создания, отправки или запуска приложений Docker с несколькими контейнерами. Используйте эту задачу с реестром Docker или реестром контейнеров Azure.

Примеры

Реестр контейнеров Azure

В этом примере YAML указаны входные данные для реестра контейнеров Azure:

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

Другие реестры контейнеров

Значение containerregistrytype требуется при использовании любого реестра контейнеров, отличного от ACR. В этом случае используйте containerregistrytype: Container Registry.

В этом примере YAML указывается реестр контейнеров, отличный от ACR, где Contoso — это имя подключения службы реестра Docker для реестра контейнеров:

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

Создание образов служб

В этом примере YAML создается образ, в котором имя образа квалифицировано на основе входных данных, связанных с реестром контейнеров Azure:

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

Push-образы служб

В этом примере YAML образ отправляется в реестр контейнеров:

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

Запуск образов служб

В этом примере YAML выполняются службы:

- 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

Запуск определенного образа службы

В этом примере YAML выполняется определенная служба:

- 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

Блокировка образов служб

В этом примере YAML блокируются службы:

- 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

Создание дайджестов образов службы

Этот пример YAML записывает дайджесты образов службы:

- 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 

Объединение конфигурации

В этом примере YAML объединяются конфигурации:

- 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

Выполнение команды Docker Compose

В этом примере YAML выполняется команда 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

Требования

Требование Описание
Типы конвейеров YAML, классическая сборка, классический выпуск
Выполняется в Агент, DeploymentGroup
требования Нет
возможностей Эта задача не удовлетворяет требованиям к последующим задачам в задании.
ограничения команд Любое
переменные settable Любое
Версия агента Все поддерживаемые версии агента.
Категория задач Строить