共用方式為


在雲端中建置容器化的 Python Web 應用程式

本文是如何將 Python Web 應用程式容器化和部署至 Azure App Service 的教學課程的一部分。 App Service 可讓您執行容器化 Web 應用程式,並透過 Docker Hub、Azure Container Registry 和 Visual Studio Team Services 的持續整合/持續部署 (CI/CD) 功能進行部署。 在本教學課程的這個部分中,您將瞭解如何在雲端中建置容器化的 Python Web 應用程式。

在本教學課程的上一個 可選的 部分,容器映像已在本機進行構建和執行。 相反地,在本教學課程的這個部分中,您會直接在 Azure Container Registry 中,將 Python Web 應用程式製作成 Docker 映像檔。 在 Azure 中建置映射通常比在本機建置更快、更輕鬆,然後將映像推送至登錄。 此外,在雲端中建置不需要在開發環境中執行 Docker。

Docker 映像在 Azure 容器註冊表中之後,即可部署到 Azure 應用服務。

此服務圖表會醒目提示本文所涵蓋的元件。

在教學課程 - Azure 上容器化 Python 應用程式中使用的服務螢幕快照,其中內建於雲端的路徑已被醒目提示。

建立 Azure Container Registry

如果您已經有可使用的 Azure Container Registry,請移至下一個步驟。 如果沒有,請建立一個。

Azure CLI 命令可以在 Azure Cloud Shell 或已安裝 Azure CLI 的工作站上執行。 在 Cloud Shell 中執行時,請略過步驟 3

  1. 如有需要,請使用 az group create 命令來建立資源群組。 如果您已在本教學課程的第 部分「2. 本機建置及測試容器」中設定適用於 MongoDB 的 Azure Cosmos DB 帳戶,請將 RESOURCE_GROUP_NAME 環境變數設定為您用於該帳戶的資源群組名稱,然後移至下一個步驟。

    RESOURCE_GROUP_NAME='msdocs-web-app-rg'
    LOCATION='eastus'
    
    az group create -n $RESOURCE_GROUP_NAME -l $LOCATION
    

    LOCATION 應該是 Azure 位置值。 選擇您附近的位置。 您可以使用下列命令列出 Azure 位置值:az account list-locations -o table

  2. 使用 az acr create 命令來建立容器註冊。

    REGISTRY_NAME='<your Azure Container Registry name>'
    
    az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku Basic
    

    REGISTRY_NAME在 Azure 內必須是唯一的,且包含 5-50 個英數位元。

    在命令的 JSON 輸出中,尋找 loginServer 值,這是完整限定的登錄名稱(全小寫格式),並且應該包含您指定的登錄名稱。

  3. 如果您在本機執行 Azure CLI,請使用 az acr login 命令 登入容器登錄。

    az acr login -n $REGISTRY_NAME
    

    命令將「azurecr.io」加入名稱中,以建立完整的登錄名稱。 如果成功,您會看到「登入成功」訊息。

    注意

    Cloud Shell 中不需要或支援 az acr login 命令。

在 Azure Container Registry 中建置映像檔

您可以透過幾種方式直接在 Azure 中建置容器映像。 首先,您可以使用 Azure Cloud Shell 來建置映射,而不需使用本機環境。 您也可以使用 VS Code 或 Azure CLI,從本機環境建置 Azure 中的容器映射。 在雲端中建置映像不需要 Docker 在您的本機環境中執行。 如果您需要,您可以按照本教學課程第 2 部分中 的指示,複製或下載範例應用程式,以取得 Flask 或 Django 的範例 Web 應用程式。

Azure CLI 命令可以在已安裝 Azure CLI 的工作站上執行,或在 azure Cloud Shell中執行。 在 Cloud Shell 中執行時,請略過 步驟 1

  1. 如果您正在本機執行 Azure CLI,且尚未使用 az acr login 命令登入至登錄機,請先登入。

    az acr login -n $REGISTRY_NAME
    

    如果您要從與建立登錄系統所在的訂用帳戶不同的訂用帳戶存取登錄系統,請使用 --suffix 切換項目。

    注意

    不需要 az acr login 命令,且 Cloud Shell 中不支援。

  2. 使用 az acr build 命令來建置映像。

    az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .
    

    在此命令中:

  3. 確認已使用 az acr repository list 命令 建立容器映射。

    az acr repository list -n $REGISTRY_NAME
    

下一步