Vytvoření kontejnerizované webové aplikace v Pythonu v cloudu
Tento článek je součástí kurzu o kontejnerizaci a nasazení webové aplikace v Pythonu do služby Azure App Service. App Service umožňuje spouštět kontejnerizované webové aplikace a nasazovat prostřednictvím funkcí kontinuální integrace a průběžného nasazování (CI/CD) pomocí Docker Hubu, Azure Container Registry a Visual Studio Team Services. V této části kurzu se dozvíte, jak sestavit kontejnerizovanou webovou aplikaci v Pythonu v cloudu.
V předchozí volitelné části tohoto kurzu byla image kontejneru sestavena a spuštěna lokálně. Naproti tomu v této části kurzu sestavíte (kontejnerizuje) webovou aplikaci v Pythonu do image Dockeru přímo v Azure Container Registry. Sestavení image v Azure je obvykle rychlejší a jednodušší než sestavení místně a následné nasdílením image do registru. Sestavování v cloudu také nevyžaduje, aby byl Docker spuštěný ve vašem vývojovém prostředí.
Jakmile je image Dockeru ve službě Azure Container Registry, můžete ji nasadit do služby Azure App Service.
Tento diagram služby zvýrazňuje součásti popsané v tomto článku.
Vytvoření služby Azure Container Registry
Pokud už máte Službu Azure Container Registry, kterou můžete použít, přejděte k dalšímu kroku. Pokud ne, vytvořte ho.
Příkazy Azure CLI je možné spouštět v Azure Cloud Shellu nebo na pracovní stanici s nainstalovaným Azure CLI. Při spuštění v Cloud Shellu přeskočte krok 3.
Pokud je to potřeba, vytvořte skupinu prostředků pomocí příkazu az group create. Pokud jste už nastavili účet Služby Azure Cosmos DB pro MongoDB v části 2. Místní sestavení a testování kontejneru tohoto kurzu, nastavte proměnnou prostředí RESOURCE_GROUP_NAME na název skupiny prostředků, kterou jste pro tento účet použili, a přejděte k dalšímu kroku.
RESOURCE_GROUP_NAME='msdocs-web-app-rg' LOCATION='eastus' az group create -n $RESOURCE_GROUP_NAME -l $LOCATION
UMÍSTĚNÍ by mělo být hodnota umístění Azure. Zvolte umístění blízko vás. Hodnoty umístění Azure můžete zobrazit pomocí následujícího příkazu:
az account list-locations -o table
.Vytvořte registr kontejneru pomocí příkazu az acr create.
REGISTRY_NAME='<your Azure Container Registry name>' az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku Basic
REGISTRY_NAME musí být v rámci Azure jedinečné a musí obsahovat 5–50 alfanumerických znaků.
Ve výstupu JSON příkazu vyhledejte hodnotu
loginServer
, což je plně kvalifikovaný název registru (všechna malá písmena) a který by měl obsahovat zadaný název registru.Pokud používáte Azure CLI místně, přihlaste se k registru pomocí příkazu az acr login.
az acr login -n $REGISTRY_NAME
Příkaz přidá do názvu "azurecr.io", aby se vytvořil plně kvalifikovaný název registru. V případě úspěchu se zobrazí zpráva Přihlášení bylo úspěšné.
Poznámka
Příkaz
az acr login
není v Cloud Shellu potřeba ani podporovaný.
Vytvoření image ve službě Azure Container Registry
Image kontejneru můžete sestavit přímo v Azure několika způsoby. Nejprve můžete použít Azure Cloud Shell, který image sestaví bez použití místního prostředí. Image kontejneru můžete také sestavit v Azure z místního prostředí pomocí VS Code nebo Azure CLI. Sestavení image v cloudu nevyžaduje, aby byl Docker spuštěný ve vašem místním prostředí. Pokud potřebujete, můžete postupovat podle pokynů v Clone nebo stáhnout ukázkovou aplikaci v části 2 tohoto kurzu a získat ukázkovou webovou aplikaci Flask nebo Django.
Příkazy Azure CLI je možné spouštět na pracovní stanici pomocí Azure CLI nainstalovaného nebo v Azure Cloud Shellu. Při spuštění v Cloud Shellu přeskočte krok 1.
Pokud používáte Azure CLI místně, přihlaste se k registru, pokud jste to ještě neudělali, pomocí příkazu az acr login.
az acr login -n $REGISTRY_NAME
Pokud přistupujete k registru z předplatného, které se liší od předplatného, ve kterém byl registr vytvořen, použijte přepínač
--suffix
.Poznámka
Příkaz
az acr login
není potřeba a není podporovaný v Cloud Shellu.Sestavte obraz pomocí příkazu az acr build.
az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .
V tomto příkazu:
Tečka (".") na konci příkazu označuje umístění zdrojového kódu, které se má sestavit. Pokud tento příkaz nespouštíte v kořenovém adresáři ukázkové aplikace, zadejte cestu ke kódu.
Místo cesty k kódu ve vašem prostředí můžete volitelně zadat cestu k ukázkovým úložišti GitHubu: https://github.com/Azure-Samples/msdocs-python-django-container-web-app nebo https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.
Pokud možnost
-t
(stejná jako--image
) vynecháte, příkaz zařadí do fronty sestavení místního kontextu, aniž by ho nasdílel do registru. Sestavení bez nahrání může být užitečné ke kontrole sestavení obrazu.
Ověřte, že se image kontejneru vytvořila pomocí příkazu az acr repository list.
az acr repository list -n $REGISTRY_NAME