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 Aplikace Azure 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 se image kontejneru sestavila a spustila místně. Naproti tomu v této části kurzu sestavíte (kontejnerizuje) webovou aplikaci v Pythonu do image Dockeru přímo ve službě 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 Aplikace Azure.
Následující diagram služby zvýrazňuje součásti popsané v tomto článku.
1. 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.
Krok 1. V případě potřeby 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. Vytvořte a otestujte kontejner místně v tomto kurzu, nastavte RESOURCE_GROUP_NAME na název skupiny prostředků, kterou jste pro tento účet použili, a přejděte ke kroku 2.
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 vypsat pomocí následujícího příkazu: az account list-locations -o table
.
Krok 2. 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 loginServer
hodnotu, což je plně kvalifikovaný název registru (všechna malá písmena) a který by měl obsahovat zadaný název registru.
Krok 3. 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ý.
2. Sestavení 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 části Klonovat 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 s nainstalovaným Azure CLI nebo v Azure Cloud Shellu. Při spuštění v Cloud Shellu přeskočte krok 1.
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 --suffix
přepínač.
Poznámka:
Příkaz az acr login
není v Cloud Shellu potřeba ani podporovaný.
Krok 2. Sestavte image 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ět v kořenovém adresáři ukázkové aplikace, zadejte cestu k 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 GitHub: 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 (stejná jako
--image
) vynecháte-t
, příkaz zařadí do fronty sestavení místního kontextu bez toho, aby ho nasdílel do registru. Sestavení bez nabízení může být užitečné ke kontrole sestavení image.
Krok 3. Pomocí příkazu az acr repository list ověřte, že se image kontejneru vytvořila.
az acr repository list -n $REGISTRY_NAME