🚀 在 VS Code 中取得

將 Django 映像推送至登錄檔

在本教學課程中,您將取得在本機建置的 Python Django 應用程式容器映像,並將其部署至 Azure Container Registry (ACR) 或 Docker Hub。

建立容器登錄檔

建立容器登錄檔以推送映像。如需如何驗證和使用登錄檔的詳細資訊,請參閱使用容器登錄檔

請確定您建立的登錄檔端點在 VS Code 的 Docker 總管的 [登錄檔] 下方可見

Docker 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)) 中,選取 [Docker: 建置映像] 以使用新設定重建映像。

    提示:如果您想要在多個託管服務上測試生產環境中的映像,您可以直接在 ALLOWED_HOSTS 中輸入 "*"

將映像推送至登錄檔

宣告 ALLOWED_HOSTS 之後,下一個步驟是將 Django 映像推送至容器登錄檔

  1. 開啟 [命令選擇區] (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 並選取 [Docker: 推送]。

  2. 選擇您剛建置要推送至登錄檔的映像。

  3. 選擇您建立要推送至其中的登錄檔。這有助於正確標記映像。

    Select a registry

  4. 選取登錄檔和完整標籤後,就會推送映像。上傳進度會顯示在 [終端機] 視窗中。

  5. 完成後,展開 [登錄檔] > Azure (或 DockerHub) 節點 (在 Docker 總管中),然後展開登錄檔和映像名稱以查看確切的映像。(您可能需要重新整理 Docker 總管。)

    The built app image in the Azure Container Registry

提示:第一次推送映像時,您會看到 VS Code 上傳映像包含的每個層。但是,後續的推送作業只會更新從第一個已變更的層開始的層。由於您的應用程式程式碼通常是最常變更的項目,因此這通常是應用程式程式碼複製到 Dockerfile 最後幾行的原因。若要查看此內部迴圈的實際運作情況,請對您的程式碼進行小變更、重建映像,然後再次推送至登錄檔。

現在您已將映像推送至登錄檔,您可以將其部署到任何可使用容器的雲端服務。如需部署至 Azure App Service 的詳細資訊,請參閱部署容器