タスク 2 - Azure Container Registry 接続情報を追加

Azure Container Registry に Docker イメージをプッシュする際に認証が必要なため、接続情報と認証処理を GitHub アクションに追加します。

本タスクは、演習 1 で作成された API アプリUI アプリ 両方の GitHub リポジトリに対して作業を行いします。

演習作業簡略化のため、ファイルの作成と編集は main ブランチに対して直接行います。

作業

  1. 鉛筆マークのボタンをクリックし、.github/workflows/build-deploy.yml ファイルを編集モードで開きます。
    操作画面イメージ

  2. Azure Container Registry のアクセスエンドポイントを定義するための変数を作成します。
    .github/workflows/build-deploy.yml ファイル上部の on ステートメントのすぐ下の行に、下記 env とその下に CONTAINER_REGISTRY を追加し、Azure Container Registry のドメイン (~.azurecr.io) を設定します。

     # Add env
     env:
       CONTAINER_REGISTRY:  # Azure Container Registry のドメイン (~.azurecr.io) をこちらに設定
    

    Tips:

    • 変数は、ワークフロー ファイルのさまざまなスコープで作成できます。 本ハンズオンではワークフロー ファイル全体で使用できるようトップスコープで 定義します。
    • Azure Container Registry のドメインは、準備作業で作成された Azure Container Registry リソースの 概要 タブ ログインサーバー にで確認できます。
    操作画面イメージ

  3. 下記 step のコードを .github/workflows/build-deploy.yml ファイルの末尾に追加します。

           # Add a step
           - name: Log in to container registry
             # 認証処理を行うためのアクション
             uses: docker/login-action@v2
             with:
               registry: ${{ env.CONTAINER_REGISTRY }}
               username: ${{ secrets.CONTAINER_REGISTRY_USERNAME }}
               password: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }}
    

    注意 各行のインデントを間違いと構文エラーになりますので、ご注意してください。

    Start commitをクリックし、Commit directly to the main branchとなっていることを確認した上で、Commit changeseボタンをクリック

    操作画面イメージ

  4. リポジトリの Secrets に Azure Container Registry への接続情報を保存します。
    Azure Container Registry の [アクセス キー] より ユーザー名password をコピーします。
    操作画面イメージ

  5. リポジトリの [Settings] -> [Secrets] -> [Actions] と辿り、New repository secret ボタンをクリックし Secret を追加します。
    操作画面イメージ



    • CONTAINER_REGISTRY_USERNAME を追加し、上でコピーした Azure Container Registry の ユーザー名 を保存します。
      操作画面イメージ


    • 同様に CONTAINER_REGISTRY_PASSWORD を追加し、上でコピーした Azure Container Registry の password を設定します。
      操作画面イメージ

確認

  1. .github/workflows/build-deploy.yml ファイルの変更ができていることを確認します。
    操作画面イメージ

  2. リポジトリの SecretsCONTAINER_REGISTRY_USERNAMECONTAINER_REGISTRY_PASSWORD が作成できていることを確認します。
    操作画面イメージ

  3. タスク 1 の 4. と同様に、手動実行でワークフローを起動します。
  4. ワークフロー処理はエラーなく終了し、build ジョブのログに Login Succeeded! のメッセージがが出力されていることを確認します。
    操作画面イメージ

参照情報