🚀 VS Code で を入手しましょう!

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

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

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

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

作成したレジストリエンドポイントが VS Code のDocker Explorer[レジストリ] に表示されていることを確認してください。

Docker Explorer in VS Code showing registries

Django アプリの設定

  1. Django プロジェクトの settings.py ファイルで、アプリのデプロイ先となるルート URL を含めるように ALLOWED_HOSTS リストを変更します。たとえば、次のコードは "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」メッセージが表示され、Web サイトのドメインを ALLOWED_HOSTS に追加するように指示されます。これを行うには、イメージを再構築、プッシュ、および再デプロイする必要があります。

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

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

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

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

  1. コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を開き、[Docker: プッシュ] を選択します。

  2. レジストリにプッシュするために、先ほどビルドしたイメージを選択します。

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

    Select a registry

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

  5. 完了したら、Docker Explorer[レジストリ] > [Azure] (または [DockerHub]) ノードを展開し、レジストリとイメージ名を展開して、正確なイメージを表示します。(Docker Explorer の更新が必要な場合があります。)

    The built app image in the Azure Container Registry

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

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