Django イメージをレジストリにプッシュする
このチュートリアルでは、ローカルで構築した Python Django アプリのコンテナ イメージを取得し、それを Azure Container Registry (ACR) または Docker Hub にデプロイします。
コンテナ レジストリを作成する
イメージをプッシュするためのコンテナ レジストリを作成します。レジストリの認証と操作の詳細については、「コンテナ レジストリを使用する」を参照してください。
作成したレジストリ エンドポイントが VS Code のコンテナ エクスプローラーのレジストリの下に表示されていることを確認してください。
Django アプリの設定
-
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
に追加するよう指示されます。これにより、イメージをもう一度再構築、プッシュ、再デプロイする必要があります。 -
コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) で、コンテナ イメージ: イメージのビルド... を選択して、新しい設定でイメージを再構築します。
ヒント: 複数のホスティング サービスでイメージを本番環境でテストしたい場合は、ALLOWED_HOSTS に
"*"
を入力するだけで済みます。
イメージをレジストリにプッシュする
ALLOWED_HOSTS
が宣言されたら、次のステップは Django イメージをコンテナ レジストリにプッシュすることです。
-
コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開き、コンテナ イメージ: プッシュ... を選択します。
-
レジストリにプッシュする構築したばかりのイメージを選択します。
-
プッシュする作成したレジストリを選択します。これはイメージの正しいタグ付けに役立ちます。
-
レジストリと完全なタグが選択されると、イメージがプッシュされます。アップロードの進行状況はターミナルウィンドウに表示されます。
-
完了したら、コンテナ エクスプローラーでレジストリ > Azure (またはDockerHub) ノードを展開し、レジストリとイメージ名を展開して正確なイメージを確認します。(コンテナ エクスプローラーを更新する必要がある場合があります。)
ヒント: 初めてイメージをプッシュするときは、VS Code がイメージを構成する各レイヤーをアップロードするのを見ることができます。しかし、その後のプッシュ操作では、変更された最初のレイヤーから始まるレイヤーのみが更新されます。アプリのコードが最も頻繁に変更されるため、通常、アプリのコードは Dockerfile の最終行にコピーされます。この内部ループが動作しているのを見るには、コードに小さな変更を加え、イメージを再構築し、レジストリに再度プッシュします。
イメージをレジストリにプッシュしたので、コンテナ対応のクラウド サービスにデプロイする準備が整いました。Azure App Service へのデプロイの詳細については、「コンテナをデプロイする」を参照してください。