次の方法で共有


DockerCompose@0 - Docker Compose v0 タスク

複数コンテナーの Docker アプリケーションをビルド、プッシュ、または実行します。 このタスクは、Docker または Azure Container Registry で使用します。

重要

DockerCompose@0 タスクは非推奨です。 このタスクでは、2023 年 7 月以降に更新プログラムを受信しなくなった docker-compose v1 を使用します。 docker compose v2 を使用するには、DockerCompose@1 タスクを使用します。 詳細については、「v1 互換モード で Docker Compose v2 を使用するDockerCompose@0」を参照してください。

複数コンテナーの Docker アプリケーションをビルド、プッシュ、または実行します。 このタスクは、Docker または Azure Container Registry で使用します。

構文

# 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 RegistryContainer Registry。 既定値: Azure Container Registry.

ACR を使用する場合は、Azure Container Registry の種類を指定します。 他のコンテナー レジストリを使用する場合は、コンテナー レジストリの種類を指定します。


Docker レジストリ サービス接続dockerRegistryEndpoint -
string. 任意 containerregistrytype = Container Registryするときに使用します。

Docker レジストリ サービス接続を指定します。 レジストリを使用してコマンドを認証する必要がある場合に必要です。


Azure サブスクリプション を する
入力エイリアス: azureSubscriptionEndpointstring. 任意 containerregistrytype = Azure Container Registryするときに使用します。

Azure サブスクリプションを指定します。 Azure サービス接続の名前。 接続を手動で設定するには、Azure Resource Manager サービスの接続 に関するページを参照してください。


Azure Container RegistryazureContainerRegistry - する
string. 任意 containerregistrytype = Azure Container Registryするときに使用します。

Azure Container Registry を指定します。


Docker Compose ファイルdockerComposeFile -
string. 必須。 既定値: **/docker-compose.yml.

プライマリ Docker Compose ファイルへのファイル パスを指定します。


追加の Docker Compose ファイルadditionalDockerComposeFiles - する
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 (サービス イメージのプッシュ)、Run services (サービス イメージの実行)、Run a specific service (特定のサービス イメージの実行)、Lock services (サービス イメージのロック)、Write service image digestsCombine configurationRun 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.

Docker イメージのビルドまたはプッシュ時に Git タグを指定します。


最新のタグを含める 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 - 作業ディレクトリの
入力エイリアス: workDirstring. 任意 action = Run a specific serviceするときに使用します。

サービス コンテナーの作業ディレクトリを指定します。


entrypoint - エントリ ポイントのオーバーライド
string. 任意 action = Run a specific serviceするときに使用します。

サービス コンテナーの既定のエントリ ポイントのオーバーライド値を指定します。


containerCommand - コマンド
string. 任意 action = Run a specific serviceするときに使用します。

サービス コンテナーで実行するコマンドを指定します。 たとえば、イメージに単純な Python Flask Web アプリケーションが含まれている場合は、Web アプリケーションを起動する 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 イメージの完全なイメージ リポジトリ ダイジェストが作成され、設定される Docker Compose ファイルへのパスを指定します。


removeBuildOptions - ビルド オプションの削除
boolean. 任意 action = Lock services || action = Combine configurationするときに使用します。 既定値: false.

出力 Docker Compose ファイルからビルド オプションを削除するかどうかを指定します。


baseResolveDirectory - 基本解決ディレクトリの
string. 任意 action = Lock services || action = Combine configurationするときに使用します。

出力 Docker Compose ファイル内の相対パスを解決するベース ディレクトリを指定します。


出力 Docker Compose ファイルoutputDockerComposeFile - する
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します。


Docker ホスト サービス接続dockerHostEndpoint -
string.

Docker ホスト サービス接続を指定します。 既定では、エージェントのホストが使用されます。


Docker Compose ファイルがない場合は no-op を nopIfNoDockerComposeFile -
boolean. 既定値: false.

Docker Compose ファイルが存在しない場合にタスクをスキップする値を指定します。 このオプションは、タスクがリポジトリ内の Docker Compose ファイルの存在に基づいてオプションの動作を提供する場合に便利です。


requireAdditionalDockerComposeFiles - 追加の Docker Compose ファイルが必要
boolean. 既定値: false.

追加の Docker Compose ファイルが存在しない場合にエラーを生成する値を指定します。 このオプションは、ファイルが存在しない場合に無視される既定の動作をオーバーライドします。


currentWorkingDirectory - 作業ディレクトリの
入力エイリアス: cwdstring. 既定値: $(System.DefaultWorkingDirectory).

Docker Compose コマンドの作業ディレクトリを指定します。


Docker Compose の実行可能パスdockerComposePath -
string.

docker-compose 実行可能ファイルが使用されているかどうかを判断するパスを指定します。


タスク コントロールのオプション

すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「コントロール オプションと一般的なタスク プロパティを参照してください。

出力変数

このタスクでは、次の 出力変数を定義します。この変数は、ダウンストリームのステップ、ジョブ、およびステージで使用できます。

DockerComposeOutput
コマンドの出力を含むファイルへのパス。 これには、dockerComposeRun コマンド (実行用とダウン用に 1 つ)、dockerPush (プッシュされたイメージごとに 1 つ)、dockerBuild (ビルド自体とすべてのタグ コマンド)、dockerDigest (プルされたイメージごとに 1 つ) など、複数のファイル パス (改行文字で区切られた) を含めることができます。 他のコマンドでは、1 つのファイルのみが出力されます。

注釈

重要

DockerCompose@0 タスクは非推奨です。 このタスクでは、2023 年 7 月以降に更新プログラムを受信しなくなった docker-compose v1 を使用します。 docker compose v2 を使用するには、DockerCompose@1 タスクを使用します。 詳細については、「v1 互換モード で Docker Compose v2 を使用するDockerCompose@0」を参照してください。

このタスクを使用して、複数コンテナーの Docker アプリケーションをビルド、プッシュ、または実行します。 このタスクは、Docker レジストリまたは Azure Container Registry で使用します。

例示

Azure Container Registry(アジュール コンテナ レジストリ)

この YAML の例では、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)

その他のコンテナー レジストリ

ACR 以外のコンテナー レジストリを使用する場合は、containerregistrytype 値が必要です。 この場合は containerregistrytype: Container Registry を使用します。

この YAML の例では、ACR 以外のコンテナー レジストリを指定します。Contoso は、コンテナー レジストリの Docker レジストリ サービス接続の名前です。

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

サービス イメージをビルドする

この YAML の例では、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)

サービス イメージをプッシュする

この 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
の需要 なし
機能の このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 どれでも
設定可能な変数 どれでも
エージェントのバージョン サポートされているすべてのエージェント バージョン。
タスク カテゴリ 建築する