タスク 3 - Azure Container Registry に直接 Docker イメージを作成する - 方法 1

タスク 3

この演習では Visual Studio Code の Azure 関連の拡張を使用して、Azure 上に Azure Container Registry を新規に作成し、レジストリに直接 Docker イメージを作成します。

この方法ではローカル環境に Docker 環境を用意する必要はなく、また、Docker イメージを手動でプッシュする必要もありません。

Azure Container Registry に直接 Docker イメージを作成する方法の手順は以下の通りです。

手順

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

    # XXX は作業者毎にユニークな文字列に変更
    az group create --name Handson01-XXX --location japaneast
    
    # Azure Container Registry の名前はユニークである必要があるため、名前の前部分を "handson01repo" とし、後ろにユニークな数字などを付加してください
     az acr create --resource-group Handson01-XXX --name handson01repo~~~ --sku Basic
    
  2. Visual Studio Code でプロジェクト containerapps-albumapi-javascript をオープンします

  3. キーボードの Shift + Alt + A を押下して Azure 拡張をアクティブにし、[RESOURCES] や [WORKSPACE] に Azure のリソースがリストされていることを確認します。リストされていない場合は Azure 拡張から Azure にログインします
    操作画面イメージ

  4. Docker 拡張をアクティブにし、[REGISTRIES] にステップ 1で作成した Azure Container registry のリソースがリストされていることを確認します。リストされていない場合は Docker 拡張から Azure にログインします
    操作画面イメージ

  5. キーボードの Ctrl + Shift + E を押下します。表示されたツリービューより Dockerfile を選択して右クリックし、表示されたコンテキストメニューより [Build Image in Azure…] をクリックします
    操作画面イメージ

    Tips: このメニューは Azure 拡張から Azure へのログインが完了していないとコンテキスト メニューに表示されませんので注意が必要です

  6. コマンドバーに既定の Tag イメージ 名が入力された状態で “Tag image as… (Press ‘Enter’ to confirm or ‘Escape’ to cancel)” と表示されるので、そのままEnter キーを押下します

  7. コマンドバーに “Select registry provider” と表示され、Azure を選択します

  8. コマンドバーに “Select subscription” と表示され、所有するサブスクリプションが列挙されるので、使用する Azure サブスクリプションを選択します

  9. コマンドバーに “Select registry” と表示され、サブスクリプション中の既存のコンテナレジストリの一覧にステップ 1で作成した Azure Container Registry を選択します

  10. コマンドバーに “Select image base OS” と表示され、OS の一覧が表示されるので “Linux” を選択します

    コマンドが実行され、ステップ 1で作成した Azure Container registry に Docker イメージが作成されます。

    【Tips:】 この手順の実行時、タイミングによっては以下のようなメッセージが返り Docker イメージの Push が失敗する場合があります。

    Error: failed to download context. Please check if the URL is incorrect. If it has credentials, please check if they are expired

    その場合はステップ 4からの操作を再度実行してください。

    ステップ 2 からここまでと同様の手順をプロジェクト containerapps-albumui に対しても行います。
    Azure Container Registry と Azure Resource Group はステップ 1で作成したリソースを選択して使用します。

    [ステップ 2]からここまでの手順が環境制限により実施できない場合の回避策

    次のコマンドを実行して、Azure CLI を使用して、ステープ 1で作成した Azure Container Registry にて直接 Docker Image を作成します。
    APIアプリ: az acr build --registry handson01repo~~~ --image acabackendjavascript:v1 --file /path/to/Dockerfile /path/to/build/context
    UIアプリ: az acr build --registry handson01repo~~~ --image acafrontend:v1 --file /path/to/Dockerfile /path/to/build/context

  11. 各 Docker イメージの Push が完了したら Azure ポータルにログインし、作成した Azure Container Registry の構成画面を開きます

  12. 画面左のメニューより [リポジドリ] を選択し、表示されたリポジトリの一覧に containerapps-albumapi-javascriptcontainerapps-albumui があることを確認します

  13. 画面左のメニューより [アクセス キー] をクリックし、遷移した画面内の [管理者ユーザー] のトグルボタンを “有効“にします
    操作画面イメージ

    この設定は Azure Container Apps に Docker イメージをデプロイするのに必要です。

ここまでの手順で Azure コンテナ レジストリの作成と Docker イメージの Push は完了です。

次の演習では Azure Container Apps のリソースを作成し、アプリケーションのコンテナーをデプロイします。