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.
Azure App Service'te docker Compose uygulaması çalıştırıyorsanız bunu sepetlere geçirmeniz gerekir. Docker Compose uygulamasını sidecarlara taşımak için iki ana strateji vardır.
- Betik tabanlı geçiş - basit kurulumlar için önerilir.
- El ile geçiş
Önkoşullar
- PowerShell
- Azure Komut Satırı Arayüzü (Azure CLI)
- Docker (görüntü oluşturmak ve göndermek için)
Betik ile geçiş
Docker Compose dosyanız basitse, işlemi otomatikleştirmek için resmi geçiş betiğini kullanabilirsiniz.
Önemli
Geçiş betiğini çalıştırmadan önce uygulamanızı her zaman Azure portalından yedekleyin.
Betiği PowerShell'de çalıştırarak abonelik kimliğinizi, web uygulamasının adını, kaynak grubunu, kayıt defteri URL'sini, base64 kodlamalı Docker Compose dosyasını, ana hizmet adını ve hedef bağlantı noktasını sağlayın.
./update-webapp.ps1 ` -subscriptionId "<subscriptionId>" ` -webAppName "<webAppName>" ` -resourceGroup "<resourceGroup>" ` -registryUrl "<registryUrl>" ` -base64DockerCompose "<base64DockerCompose>" ` -mainServiceName "<mainServiceName>" ` -targetPort "<targetPort>"Kayıt defteriniz kimlik doğrulaması gerektiriyorsa, betik sizden
dockerRegistryServerUsernamevedockerRegistryServerPasswordbilgilerini etkileşimli olarak sağlamanızı ister.
El ile geçiş yapma
Azure'da oturum açın ve aboneliğinizi ayarlayın.
az login az account set --subscription <your-subscription-id>Gerekli ayrıntıları toplayın.
az account show --query id --output tsv az webapp list --query "[].{name:name}" --output tsv az group list --query "[].{name:name}" --output tsv az acr list --query "[].{name:name}" --output tsvBunlar abonelik kimliğinizi, uygulama adınızı, kaynak grubunuzu ve Azure kapsayıcı kayıt defterinizi belirlemenize yardımcı olur.
Dağıtım yuvası oluşturun. Yuvayı üretim ortamına geçirmeden önce taşınan sidecar'ları doğrulayacaksınız.
az webapp deployment slot create --name <webapp-name> --resource-group <resource-group> --slot <slot-name>Üretim uygulamasından mevcut Docker Compose yapılandırmasını çözebilirsiniz.
az webapp config show --name <webapp-name> --resource-group <resource-group> --query linuxFxVersionÇıkıştan base64 bölümünü kopyalayın ve PowerShell'de kodunu açın:
[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("<base64value>"))Oluştur dosyanızdaki her hizmet için, URL yolunun altındaki
sitecontainersdağıtım yuvasında karşılık gelencontainerbir kaynak oluşturun:az rest --method PUT \ --url https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Web/sites/<webapp-name>/slots/<slot-name>/sitecontainers/<container-name>?api-version=2023-12-01 \ --body '{"name":"<container-name>", "properties":{"image":"<image-name>", "isMain": <true/false>, "targetPort": <port>}}'Eşleme konusunda size yardımcı olması için Docker Compose Öznitelikleri ve Sepet Yapılandırması Eşlemesi'ni kullanın.
içinde
<container-name>olmasını istediğiniz kapsayıcı adını kullanın.isMainDeğerini ana uygulama kapsayıcısı içintrue, yan arabalar içinfalseolarak ayarlayın.<image-name>için sunucu adını içeren görüntünün tam yolunu kullanın. Örneğin:"image":"myregistry.azurecr.io/myapp/backend:latest"Tüm kapsayıcılar için tekrarlayın.
Sidecar modunu kullanmak için dağıtım yuvasını değiştirin.
az webapp config set --name <webapp-name> --resource-group <resource-group> --slot <slot-name> --linux-fx-version "sitecontainers"Dağıtım yuvasını yeniden başlatın, ardından geçirilen uygulamanın dağıtım yuvasındaki işlevselliğini doğrulayın.
az webapp restart --name <webapp-name> --resource-group <resource-group> --slot <slot-name>Doğrulandıktan sonra yuvayı üretime geçirin:
az webapp deployment slot swap --name <webapp-name> --resource-group <resource-group> --slot <slot-name> --target-slot production
Docker Compose özniteliklerini ve sidecar yapılandırmasını eşleme
Aşağıdaki Docker Compose alanları sidecar yapılandırmasıyla eşlenir:
| Docker Compose | Sidecar yapılandırması | Notes |
|---|---|---|
command, entrypoint |
startUpCommand |
|
environment |
environmentVariables |
|
image |
image |
|
ports |
targetPort |
Dış trafik için yalnızca 80 ve 8080 bağlantı noktaları desteklenir. |
volumes |
volumeMounts |
Kalıcı Azure depolama desteklenmiyor. |
Sidecar konteynerlerde aşağıdaki Docker Compose alanları desteklenmez:
| Docker Compose Ortamı | Destek | Notes |
|---|---|---|
build |
İzin verilmiyor | Görüntüleri önceden derleyin ve bir kayıt defterine gönderin. |
depends_on |
Yoksayıldı | Kapsayıcı başlatma siparişi garanti değildir. |
networks |
Yoksayıldı | Ağ iç işlemlerle yönetilir. |
secrets |
Yoksayıldı | Gizli bilgiler için App Service uygulama ayarlarını veya Key Vault'ı kullanın. |
volumes kullanarak {WEBAPP_STORAGE_HOME} veya {WEBSITES_ENABLE_APP_SERVICE_STORAGE} |
Desteklenmiyor |
Geçiş sınırlamaları ve dikkat edilmesi gerekenler
Aşağıdaki tabloda, Docker Compose uygulamalarında desteklenen ancak sidecar'larda desteklenmeyen veya sınırlı desteklenen özellikler gösterilmektedir.
| Özellik | Docker Compose | Sepet |
|---|---|---|
| Depolama | Kapsayıcılar arasında paylaşılan birimler | Kapsayıcıya özel kalıcı depolama sınırlıdır |
| Ağ Kurma | Konak adı olarak hizmet adları | Tüm kapsayıcılar localhost öğesini paylaşır; benzersiz bağlantı noktaları gereklidir. |
| Kayıt Tutma ve İzleme | Özelleştirilmiş sürücüler, harici araçlar | Azure Monitor ve Log Analytics ile tümleşik |
| App Service Ortamı (ASE) | Destekleniyor | Henüz desteklenmiyor |
| Ulusal Bulutlar | Destekleniyor | Henüz desteklenmiyor |