將 Django 映像推送至登錄檔
在本教學課程中,您將取得在本機建置的 Python Django 應用程式容器映像,並將其部署至 Azure Container Registry (ACR) 或 Docker Hub。
建立容器登錄檔
建立容器登錄檔以推送映像。如需如何驗證和使用登錄檔的詳細資訊,請參閱使用容器登錄檔。
請確定您建立的登錄檔端點在 VS Code 的 Docker 總管的 [登錄檔] 下方可見
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)) 中,選取 [Docker: 建置映像] 以使用新設定重建映像。
提示:如果您想要在多個託管服務上測試生產環境中的映像,您可以直接在 ALLOWED_HOSTS 中輸入
"*"
。
將映像推送至登錄檔
宣告 ALLOWED_HOSTS
之後,下一個步驟是將 Django 映像推送至容器登錄檔
-
開啟 [命令選擇區] (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 並選取 [Docker: 推送]。
-
選擇您剛建置要推送至登錄檔的映像。
-
選擇您建立要推送至其中的登錄檔。這有助於正確標記映像。
-
選取登錄檔和完整標籤後,就會推送映像。上傳進度會顯示在 [終端機] 視窗中。
-
完成後,展開 [登錄檔] > Azure (或 DockerHub) 節點 (在 Docker 總管中),然後展開登錄檔和映像名稱以查看確切的映像。(您可能需要重新整理 Docker 總管。)
提示:第一次推送映像時,您會看到 VS Code 上傳映像包含的每個層。但是,後續的推送作業只會更新從第一個已變更的層開始的層。由於您的應用程式程式碼通常是最常變更的項目,因此這通常是應用程式程式碼複製到 Dockerfile 最後幾行的原因。若要查看此內部迴圈的實際運作情況,請對您的程式碼進行小變更、重建映像,然後再次推送至登錄檔。
現在您已將映像推送至登錄檔,您可以將其部署到任何可使用容器的雲端服務。如需部署至 Azure App Service 的詳細資訊,請參閱部署容器。