Docker テンプレートを使用して Docker イメージをビルドして Azure Container Registry にプッシュする

Azure DevOps Services

このステップバイステップ チュートリアルでは、コンテナ化されたアプリケーションをビルドするために継続的インテグレーション パイプラインを設定する方法について学習します。 新しい pull request によってパイプラインがトリガーされ、Docker イメージがビルドされ、Azure Container Registry に発行されます。

前提条件

コードを取得する

pipeline-javascript-docker サンプル アプリケーションをフォークまたはクローンします。

https://github.com/MicrosoftDocs/pipelines-javascript-docker

コンテナー レジストリの作成

  1. Azure にサインインし、右上隅にある [Azure Cloud Shell] を選択します。

    Azure Cloud Shell button

  2. 次のコマンドを実行して、Azure CLI を使用してリソース グループと Azure Container Registry を作成します。

    # Create a resource group
    az group create --name myapp-rg --location eastus
    
    # Create a container registry
    az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
    

注意

コンテナー レジストリ名は小文字にする必要があります。

Azure portal Web UI を使用して、Azure Container Registry を作成することもできます。 詳細については、「コンテナー レジストリを作成する」を参照してください。

重要

Azure Container Registry から Docker イメージをデプロイするには、管理者ユーザー アカウントを有効にする必要があります。 詳細については、コンテナー レジストリの認証に関する記事を参照してください。

パイプラインを作成する

  1. Azure DevOps 組織にサインインし、プロジェクトに移動します。

  2. [パイプライン] を選択し、[新しいパイプライン] を選択して新しいパイプラインを作成します。

    Create a new pipeline

  3. [GitHub YAML] を選択し、[Azure Pipelines の承認] を選択して、リポジトリにアクセスするための適切なアクセス許可を提供します。

  4. GitHub にサインインするように求められる場合があります。 その場合は、GitHub の資格情報を入力し、リポジトリの一覧からリポジトリを選択します。

  5. [構成] タブで、[Docker - イメージをビルドし、Azure Container Registry にプッシュする] タスクを選択してください。

    Build and push Docker images to Azure Container Registry

  6. [Azure サブスクリプション] を選択してから [続行] を選択してください。

  7. ドロップダウン メニューから [コンテナー レジストリ] を選択し、コンテナー イメージにイメージ名を指定してください。

  8. 完了したら、[検証と構成] を選択してください。

    A screenshot showing how to configure a docker pipeline to build and publish an image to Azure Container Registry

    Azure Pipelines によってパイプラインが作成され、次が行われます。

    • "Docker レジストリ サービス接続" を作成して、パイプラインからコンテナー レジストリにイメージをプッシュできるようにします。

    • パイプラインを定義する azure-pipelines.yml ファイルを生成します。

  9. パイプライン YAML をレビューし、準備ができたら [保存して実行] を選択します。

    Review your pipeline, save & run

  10. コミット メッセージを追加し、[保存して実行] を選択して変更をコミットし、パイプラインを実行します。

  11. パイプラインを実行するときに、実行中のパイプラインを監視する [ビルド] ジョブを選択します。

    Monitor builds

パイプラインのビルド方法

前のセクションで作成したパイプラインは、"Docker コンテナー テンプレート" YAML から生成されました。 ビルド ステージでは、Docker タスクDocker@2を使用して Docker イメージをビルドし、コンテナー レジストリにプッシュします。

- stage: Build
  displayName: Build and push stage
  jobs:  
  - job: Build
    displayName: Build job
    pool:
      vmImage: $(vmImageName)
    steps:
    - task: Docker@2
      displayName: Build and push an image to container registry
      inputs:
        command: buildAndPush
        repository: $(imageRepository)
        dockerfile: $(dockerfilePath)
        containerRegistry: $(dockerRegistryServiceConnection)
        tags: |
          $(tag)

リソースをクリーンアップする

このアプリケーションを引き続き使用しない場合は、継続的な料金が発生しないように、このチュートリアルで作成したリソースを削除することができます。 次のコマンドを実行して、リソース グループを削除します。

az group delete --name myapp-rg