Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, bir Python web uygulamasını kapsayıcıya alma ve Azure App Service'ye dağıtma hakkında 5 bölümden oluşan öğretici serisinin 3. bölümüdür. 2. bölümde kapsayıcı görüntüsünü yerel olarak oluşturup çalıştırmıştınız. Bu makalede, Docker'ı yerel olarak yüklemeden aynı Python web uygulamasını doğrudan Azure Container Registry'de derleyebilirsiniz. Görüntüyü Azure'de derlemek, yerel olarak derlemekten ve ardından bir kayıt defterine göndermekten daha hızlı ve kolaydır. Bulut tabanlı görüntü oluşturma, Docker'ın geliştirme ortamınızda çalışması gereksinimini de ortadan kaldırır.
Azure App Service, Docker Hub, Azure Container Registry ve Azure DevOps gibi platformlardan CI/CD işlem hatlarını kullanarak kapsayıcılı web uygulamaları dağıtmanıza ve çalıştırmanıza olanak tanır. Docker görüntüsü Azure Container Registry’ye yüklendikten sonra, onu Azure App Service’e dağıtabilirsiniz.
Prerequisites
Başlamadan önce , bu öğretici serisinin aşağıdakileri kapsayan 2. bölümünü tamamladığınızdan emin olun:
- Örnek depoyu kopyalama (Django veya Flask).
- Azure kaynaklar için kaynak grubu oluşturma.
- Kapsayıcılı uygulamayı yerel olarak çalıştırarak çalıştığını doğrulayın.
Ayrıca şunları yapmanız gerekir:
- Etkin bir Azure aboneliği. Bir hesabınız yoksa, ücretsiz bir hesap oluşturun.
- Azure CLI'nin yerel olarak yüklü olması (Azure CLI adımları için) veya Azure Cloud Shell'e erişim.
- Docker uzantısının yüklü olduğu Visual Studio Code (VS Code adımları için).
Önemli
Örnek Dockerfile temel görüntü olarak kullanır python:3.8-slim .
Python 3.8, Ekim 2024'te kullanım ömrü sonuna ulaştı ve artık güvenlik güncelleştirmelerini almıyor. Dockerfile'ınızı, üretim dağıtımları için python:3.12-slim veya python:3.13-slim kullanacak şekilde güncelleyin.
Bu hizmet diyagramı, bu makalede ele alınan bileşenleri vurgular.
Bir Azure Container Registry oluşturma
Zaten bir Azure Container Registry varsa, bu adımı atlayın ve sonraki adıma geçin. Aksi takdirde, Azure CLI kullanarak yeni bir Azure Container Registry oluşturun.
Azure CLI komutları Azure Cloud Shell veya Azure CLIyüklü olarak yerel geliştirme ortamınızda çalıştırabilirsiniz.
Not
Bu kılavuz serisinin ikinci bölümündeki adları kullanın.
az acr create komutunu kullanarak Azure kapsayıcı kayıt defteri oluşturun.
#!/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 StandardKomutun JSON çıkışında değerini bulun
loginServer. Bu değer tam kayıt defteri adını (tümü küçük harfle) temsil eder ve kayıt defteri adını içerir.Örnek çıkış:
{ "loginServer": "msdocscontainerregistryname.azurecr.io", "name": "msdocscontainerregistryname", ... }Yerel makinenizde Azure CLI kullanıyorsanız az acr login komutunu çalıştırarak kapsayıcı kayıt defterinde oturum açın.
az acr login -n $REGISTRY_NAME-nparametresi kısa kayıt defteri adını (örneğin,msdocscontainerregistryname) veya tam kayıt defteri adını (msdocscontainerregistryname.azurecr.io) kabul eder. Komut, Azure CLI kimlik bilgilerinizi kullanarak Docker'ın kimliğini Azure Container Registry ile doğrular.Beklenen çıkış:
Login SucceededNot
Azure Cloud Shell kullanıyorsanız, Cloud Shell oturumunuz kimlik doğrulamasını otomatik olarak işlediğinden
az acr loginkomutunu çalıştırmanız gerekmez.
Azure Container Registry'de görüntü oluşturma
Kapsayıcı görüntüsünü çeşitli yaklaşımlarla doğrudan Azure'da oluşturabilirsiniz:
- Azure Cloud Shell, görüntüyü yerel ortamınızdan bağımsız olarak tamamen bulutta oluşturmanıza olanak tanır.
- Alternatif olarak, Docker'ın yerel olarak çalıştırılmasına gerek kalmadan görüntüyü yerel kurulumunuzdan Azure oluşturmak için VS Code veya Azure CLI kullanabilirsiniz.
Azure CLI komutlarını, yüklü Azure CLI veya Azure Cloud Shell kullanarak yerel geliştirme ortamınızda çalıştırabilirsiniz.
Konsolunda, bu öğretici serisinin 2. bölümünden kopyalanmış deponuzun kök klasörüne gidin.
az acr build komutunu kullanarak kapsayıcı görüntüsünü oluşturun.
Yerel geliştirme:
az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .Azure Cloud Shell:
Azure Cloud Shell kullanıyorsanız yerel yol (
.) yerine GitHub depo URL'sini belirtin:# 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.gitSon bağımsız değişken (
.veya Git URL'si), Docker derleme bağlamıdır; Docker'ın görüntüyü oluşturmak için kullandığı Dockerfile ve uygulama dosyalarını içeren dizindir.az acr repository list komutunu kullanarak kapsayıcı görüntüsünün oluşturulduğunu onaylayın.
az acr repository list -n $REGISTRY_NAMEBeklenen çıkış:
[ "msdocspythoncontainerwebapp" ]