Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł jest trzecią częścią pięcioczęściowej serii samouczków na temat konteneryzacji i wdrażania internetowej aplikacji w języku Python w usłudze Azure App Service. W części 2 utworzono i uruchomiono lokalnie obraz kontenera. W tym artykule utworzysz tę samą aplikację internetową Python bezpośrednio w Azure Container Registry bez lokalnego instalowania platformy Docker. Kompilowanie obrazu w Azure jest zwykle szybsze i łatwiejsze niż kompilowanie lokalnie, a następnie wypychanie go do rejestru. Tworzenie obrazów opartych na chmurze eliminuje również konieczność działania platformy Docker w środowisku projektowym.
Usługa Azure App Service umożliwia wdrażanie i uruchamianie aplikacji internetowych w kontenerach przy użyciu potoków CI/CD z platform takich jak Docker Hub, Azure Container Registry i Azure DevOps. Gdy obraz Dockera znajduje się w usłudze Azure Container Registry, możesz wdrożyć go do usługi Azure App Service.
Wymagania wstępne
Przed rozpoczęciem upewnij się, że ukończono część 2 tej serii samouczków, która obejmuje:
- Klonowanie przykładowego repozytorium (Django lub Flask).
- Tworzenie grupy zasobów dla zasobów Azure.
- Uruchamianie aplikacji konteneryzowanej lokalnie w celu sprawdzenia, czy działa.
Potrzebne są również następujące elementy:
- Aktywna subskrypcja platformy Azure. Jeśli jej nie masz, utwórz bezpłatne konto.
- Azure CLI zainstalowany lokalnie (do wykonania kroków w Azure CLI) lub dostęp do Azure Cloud Shell.
- Visual Studio Code z zainstalowanym rozszerzeniem Docker (w przypadku instrukcji dla programu VS Code).
Ważne
Przykładowy plik Dockerfile używa python:3.8-slim jako obrazu podstawowego.
Python 3.8 osiągnął koniec użytkowania w październiku 2024 r. i nie otrzymuje już aktualizacji zabezpieczeń. Zaktualizuj plik Dockerfile tak, aby używał python:3.12-slim lub python:3.13-slim na potrzeby wdrożeń produkcyjnych.
Ten diagram usługi wyróżnia składniki omówione w tym artykule.
Tworzenie usługi Azure Container Registry
Jeśli masz już Azure Container Registry, pomiń ten krok i przejdź do następnego kroku. W przeciwnym razie utwórz nowy Azure Container Registry przy użyciu Azure CLI.
Polecenia Azure CLI można uruchamiać w Azure Cloud Shell lub w lokalnym środowisku projektowym z zainstalowanym Azure CLI.
Notatka
Użyj tych samych nazw co w części 2 tej serii samouczków.
Utwórz rejestr kontenerów Azure za pomocą polecenia az acr create.
#!/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 StandardW danych wyjściowych polecenia JSON znajdź wartość
loginServer. Ta wartość reprezentuje w pełni kwalifikowaną nazwę rejestru (wszystkie małe litery) i zawiera nazwę rejestru.Przykładowe dane wyjściowe:
{ "loginServer": "msdocscontainerregistryname.azurecr.io", "name": "msdocscontainerregistryname", ... }Jeśli używasz Azure CLI na komputerze lokalnym, uruchom polecenie az acr login, aby zalogować się do rejestru kontenerów.
az acr login -n $REGISTRY_NAMEParametr
-nakceptuje krótką nazwę rejestru (na przykładmsdocscontainerregistryname) lub w pełni kwalifikowaną nazwę rejestru (msdocscontainerregistryname.azurecr.io). Polecenie uwierzytelnia Dockera w usłudze Azure Container Registry przy użyciu poświadczeń Azure CLI.Oczekiwane dane wyjściowe:
Login SucceededNotatka
Jeśli używasz Azure Cloud Shell, nie musisz uruchamiać
az acr loginpolecenia, ponieważ sesja Cloud Shell automatycznie obsługuje uwierzytelnianie.
Tworzenie obrazu w usłudze Azure Container Registry
Obraz kontenera można wygenerować bezpośrednio na platformie Azure za pomocą różnych podejść:
- Azure Cloud Shell umożliwia konstruowanie obrazu w całości w chmurze, niezależnie od środowiska lokalnego.
- Alternatywnie możesz użyć programu VS Code lub Azure CLI, aby utworzyć obraz w Azure z lokalnej konfiguracji bez konieczności uruchamiania platformy Docker lokalnie.
Możesz uruchamiać polecenia Azure CLI w lokalnym środowisku programistycznym za pomocą zainstalowanego narzędzia Azure CLI lub w Azure Cloud Shell.
W konsoli przejdź do głównego folderu sklonowanego repozytorium z części 2 tej serii samouczków.
Skompiluj obraz kontenera przy użyciu polecenia az acr build .
Programowanie lokalne:
az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .Azure Cloud Shell:
Jeśli używasz Azure Cloud Shell, określ adres URL repozytorium GitHub zamiast ścieżki lokalnej (
.):# 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.gitOstatnim argumentem (
.lub adresem URL usługi Git) jest kontekst kompilacji platformy Docker — katalog zawierający pliki dockerfile i pliki aplikacji używane przez platformę Docker do skompilowania obrazu.Upewnij się, że obraz kontenera został utworzony przy użyciu polecenia az acr repository list .
az acr repository list -n $REGISTRY_NAMEOczekiwane dane wyjściowe:
[ "msdocspythoncontainerwebapp" ]