VS Codeのエージェントモードを拡張するには、を試してください!

Django イメージをレジストリにプッシュする

このチュートリアルでは、ローカルで構築した Python Django アプリのコンテナ イメージを取得し、それを Azure Container Registry (ACR) または Docker Hub にデプロイします。

コンテナ レジストリを作成する

イメージをプッシュするためのコンテナ レジストリを作成します。レジストリの認証と操作の詳細については、「コンテナ レジストリを使用する」を参照してください。

作成したレジストリ エンドポイントが VS Code のコンテナ エクスプローラーレジストリの下に表示されていることを確認してください。

Container Explorer in VS Code showing registries

Django アプリの設定

  1. Django プロジェクトの settings.py ファイルで、ALLOWED_HOSTS リストを、アプリをデプロイするルート URL を含むように変更します。たとえば、次のコードは、「vsdocs-django-sample-container」という名前の Azure App Service (azurewebsites.net) へのデプロイを想定しています。

    ALLOWED_HOSTS = [
        # Example host name only; customize to your specific host
        "vsdocs-django-sample-container.azurewebsites.net"
    ]
    

    このエントリがないと、デプロイ後に「DisallowedHost」メッセージが表示され、ウェブサイトのドメインを ALLOWED_HOSTS に追加するよう指示されます。これにより、イメージをもう一度再構築、プッシュ、再デプロイする必要があります。

  2. コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) で、コンテナ イメージ: イメージのビルド... を選択して、新しい設定でイメージを再構築します。

    ヒント: 複数のホスティング サービスでイメージを本番環境でテストしたい場合は、ALLOWED_HOSTS に "*" を入力するだけで済みます。

イメージをレジストリにプッシュする

ALLOWED_HOSTS が宣言されたら、次のステップは Django イメージをコンテナ レジストリにプッシュすることです。

  1. コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開き、コンテナ イメージ: プッシュ... を選択します。

  2. レジストリにプッシュする構築したばかりのイメージを選択します。

  3. プッシュする作成したレジストリを選択します。これはイメージの正しいタグ付けに役立ちます。

    Select a registry

  4. レジストリと完全なタグが選択されると、イメージがプッシュされます。アップロードの進行状況はターミナルウィンドウに表示されます。

  5. 完了したら、コンテナ エクスプローラーレジストリ > Azure (またはDockerHub) ノードを展開し、レジストリとイメージ名を展開して正確なイメージを確認します。(コンテナ エクスプローラーを更新する必要がある場合があります。)

    The built app image in the Azure Container Registry

ヒント: 初めてイメージをプッシュするときは、VS Code がイメージを構成する各レイヤーをアップロードするのを見ることができます。しかし、その後のプッシュ操作では、変更された最初のレイヤーから始まるレイヤーのみが更新されます。アプリのコードが最も頻繁に変更されるため、通常、アプリのコードは Dockerfile の最終行にコピーされます。この内部ループが動作しているのを見るには、コードに小さな変更を加え、イメージを再構築し、レジストリに再度プッシュします。

イメージをレジストリにプッシュしたので、コンテナ対応のクラウド サービスにデプロイする準備が整いました。Azure App Service へのデプロイの詳細については、「コンテナをデプロイする」を参照してください。