Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek je 3. částí 5dílné série kurzů o kontejnerizaci a nasazení webové aplikace Python do Azure App Service. V části 2 jste vytvořili a spustili image kontejneru místně. V tomto článku vytvoříte stejnou Python webovou aplikaci přímo v Azure Container Registry bez místní instalace Dockeru. Sestavení image v Azure je obvykle rychlejší a jednodušší než její místní sestavení a následné odeslání do registru. Cloudové vytváření imagí také eliminuje nutnost, aby Docker běžel ve vašem vývojovém prostředí.
Azure App Service umožňuje nasazovat a spouštět kontejnerizované webové aplikace pomocí kanálů CI/CD z platforem, jako je Docker Hub, Azure Container Registry a Azure DevOps. Jakmile je image Dockeru v Azure Container Registry, můžete ji nasadit do Azure App Service.
Předpoklady
Než začnete, ujistěte se, že jste dokončili část 2 této série kurzů, která popisuje:
- Klonování ukázkového úložiště (Django nebo Flask)
- Vytvoření skupiny prostředků pro prostředky v Azure
- Spuštění kontejnerizované aplikace místně za účelem ověření, že funguje.
Potřebujete také:
- Aktivní předplatné Azure. Pokud ho nemáte, vytvořte si bezplatný účet.
- Azure CLI nainstalovaný místně (pro Azure CLI kroky) nebo přístup k Azure Cloud Shell.
- Visual Studio Code s nainstalovaným rozšířením Dockeru (pro kroky VS Code).
Důležité
Ukázkový soubor Dockerfile používá python:3.8-slim jako základní image.
Python 3.8 dosáhla konce životnosti v říjnu 2024 a už nepřijímá aktualizace zabezpečení. Aktualizujte soubor Dockerfile tak, aby používal python:3.12-slim nebo python:3.13-slim pro produkční nasazení.
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 Azure Container Registry, přeskočte tento krok a pokračujte dalším krokem. V opačném případě vytvořte nový Azure Container Registry pomocí Azure CLI.
Příkazy Azure CLI můžete spouštět v Azure Cloud Shell nebo v místním vývojovém prostředí s nainstalovaným Azure CLI.
Poznámka
Použijte stejné názvy jako ve 2. části této série kurzů.
Pomocí příkazu az acr create vytvořte registr kontejneru Azure.
#!/bin/bash # Use the resource group that you created in part 2 of this tutorial series. RESOURCE_GROUP_NAME='msdocs-web-app-rg' # REGISTRY_NAME must be unique within Azure and contain 5-50 alphanumeric characters. # If the name is already taken, you'll receive an error. Choose a different name and retry. REGISTRY_NAME='msdocscontainerregistryname' echo "Creating Azure Container Registry $REGISTRY_NAME..." az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku StandardVe výstupu JSON příkazu vyhledejte
loginServerhodnotu. Tato hodnota představuje plně kvalifikovaný název registru (všechna malá písmena) a obsahuje název registru.Příklad výstupu:
{ "loginServer": "msdocscontainerregistryname.azurecr.io", "name": "msdocscontainerregistryname", ... }Pokud používáte Azure CLI na místním počítači, spusťte příkaz az acr login a přihlaste se k registru kontejneru.
az acr login -n $REGISTRY_NAMEParametr
-npřijímá buď krátký název registru (napříkladmsdocscontainerregistryname), nebo plně kvalifikovaný název registru (msdocscontainerregistryname.azurecr.io). Příkaz ověří Docker pomocí Azure Container Registry pomocí vašich přihlašovacích údajů Azure CLI.Očekávaný výstup:
Login SucceededPoznámka
Pokud používáte Azure Cloud Shell, nemusíte příkaz spouštět
az acr login, protože relace Cloud Shell automaticky zpracovává ověřování.
Vytvoření image ve službě Azure Container Registry
Image kontejneru můžete vygenerovat přímo v Azure prostřednictvím různých přístupů:
- Azure Cloud Shell umožňuje sestavit image zcela v cloudu nezávisle na místním prostředí.
- Alternativně můžete použít VS Code nebo Azure CLI k vytvoření image v Azure z místního nastavení, aniž byste museli Docker spouštět místně.
Příkazy Azure CLI můžete spustit v místním vývojovém prostředí pomocí Azure CLI nainstalovaného nebo v Azure Cloud Shell.
V konzole přejděte do kořenové složky pro klonované úložiště z části 2 této série kurzů.
Sestavte image kontejneru pomocí příkazu az acr build .
Místní vývoj:
az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .Azure Cloud Shell:
Pokud používáte Azure Cloud Shell, místo místní cesty zadejte adresu URL úložiště GitHub (
.):# For Django sample: az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-django-container-web-app.git # For Flask sample: az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.gitPosledním argumentem (
.nebo adresou URL Gitu) je kontext sestavení Dockeru – adresář obsahující soubory Dockerfile a aplikace, které Docker používá k sestavení image.Pomocí příkazu az acr repository list ověřte, že image kontejneru byla vytvořena.
az acr repository list -n $REGISTRY_NAMEOčekávaný výstup:
[ "msdocspythoncontainerwebapp" ]