次の方法で共有


Azure でコンテナー化された Python Web アプリを構築する

チュートリアル シリーズのこのパートでは、Docker をローカルにインストールせずに、コンテナー化された Python Web アプリを Azure Container Registry に直接構築する方法について説明します。 多くの場合、Azure での Docker イメージのビルドは、イメージをローカルで作成し、Azure Container Registry にプッシュするよりも高速で簡単です。 さらに、クラウドベースのイメージビルドにより、開発環境で Docker を実行する必要がなくなります。

App Service を使用すると、コンテナー化された Web アプリを実行し、Docker Hub、Azure Container Registry、Visual Studio Team Services の継続的インテグレーション/継続的デプロイ (CI/CD) 機能を使用してデプロイできます。 この記事は、Python Web アプリをコンテナー化して Azure App Service にデプロイする方法に関する 5 部構成のチュートリアル シリーズのパート 3 です。 チュートリアルのこのパートでは、コンテナー化された Python Web アプリを Azure で構築する方法について説明します。

Azure App Service では、Docker Hub、Azure Container Registry、Azure DevOps などのプラットフォームから CI/CD パイプラインを使用して、コンテナー化された Web アプリをデプロイして実行できます。 この記事は、5 部構成のチュートリアル シリーズのパート 3 です。

このチュートリアル シリーズのパート 2 では、コンテナー イメージをローカルでビルドして実行しました。 これに対し、チュートリアルのこの部分では、同じ Python Web アプリを Azure Container Registry の Docker イメージに直接ビルド (コンテナー化) します。 通常、Azure でのイメージのビルドは、ローカルでビルドしてからレジストリにイメージをプッシュするよりも高速で簡単です。 また、クラウドでのビルドでは、Docker を開発環境で実行する必要はありません。

Docker イメージが Azure Container Registry に入ったら、それを Azure App Service にデプロイできます。

このサービス図では、この記事で説明するコンポーネントが強調表示されています。

クラウド内ビルド パスが強調表示されている Azure 上のコンテナー化された Python アプリのチュートリアルで使用するサービスのスクリーンショット。

Azure Container Registry を作成する

使用する既存の Azure Container Registry がある場合は、この次の手順をスキップして、次の手順に進みます。 それ以外の場合は、Azure CLI を使用して新しい Azure Container Registry を作成します。

Azure CLI コマンドは、 Azure Cloud Shell または AzureCLI がインストールされたローカル開発環境で実行できます。

手記

このチュートリアル シリーズのパート 2 と同じ名前を使用します。

  1. az acr create コマンドを使用して Azure コンテナー レジストリを作成します。

    #!/bin/bash
    # Use the resource group that you created in part 2 of this tutorial series.
    RESOURCE_GROUP_NAME='msdocs-web-app-rg'
    # REGISTRY_NAME must be unique within Azure and contain 5-50 alphanumeric characters.
    REGISTRY_NAME='msdocscontainerregistryname'
    
    echo "Creating Azure Container Registry $REGISTRY_NAME..."
    az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku Standard
    

    コマンドの JSON 出力で、 loginServer 値を見つけます。 この値は、完全修飾レジストリ名 (すべて小文字) を表し、レジストリ名を含みます。

  2. ローカル コンピューターで Azure CLI を使用している場合は、 az acr login コマンドを実行してコンテナー レジストリにログインします。

    az acr login -n $REGISTRY_NAME
    

    このコマンドは、名前に "azurecr.io" を追加して、完全修飾レジストリ名を作成します。 成功した場合は、"ログインに成功しました" というメッセージが表示されます。

    手記

    Azure Cloud Shell では、認証は Cloud Shell セッションを通じて自動的に処理されるため、az acr login command は必要ありません。 ただし、認証の問題が発生した場合でも、それを使用できます。

Azure Container Registry でイメージをビルドする

さまざまなアプローチを使用して、Azure でコンテナー イメージを直接生成できます。

  • Azure Cloud Shell を使用すると、ローカル環境に関係なく、完全にクラウドにイメージを構築できます。
  • または、VS Code または Azure CLI を使用して、Docker をローカルで実行しなくても、ローカルセットアップから Azure で作成することもできます。

Azure CLI コマンドは、 Azure CLI がインストールされている ローカル開発環境または Azure Cloud Shell で実行できます。

  1. コンソールで、このチュートリアル シリーズのパート 2 から複製したリポジトリのルート フォルダーに移動します。

  2. az acr build コマンドを使用してコンテナー イメージをビルドします。

    az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .
    # When using Azure Cloud Shell, run one of the following commands instead:
    # az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-django-container-web-app.git
    # az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.git
    

    コマンドの最後の引数は、リポジトリへの完全修飾パスです。 Azure Cloud Shell で実行する場合は、Django サンプル アプリと Flask サンプル アプリのhttps://github.com/Azure-Samples/msdocs-python-django-container-web-app.githttps://github.com/Azure-Samples/msdocs-python-flask-container-web-app.gitを使用します。

  3. az acr repository list コマンドを使用してコンテナー イメージが作成されたことを確認します。

    az acr repository list -n $REGISTRY_NAME
    

次の手順

Web アプリ をデプロイする