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.
Pokud používáte aplikaci Docker Compose ve službě Azure App Service, měli byste ji migrovat na sidecary. Existují dvě hlavní strategie migrace Docker Compose aplikace na sidecars.
- Migrace založená na skriptech – doporučeno pro jednoduchá nastavení.
- Ruční migrace
Požadavky
- PowerShell
- Azure CLI (příkazový řádek nástroje Azure)
- Docker (pro vytváření a odesílání imagí)
Migrace pomocí skriptu
Pokud je váš soubor Docker Compose jednoduchý, můžete tento proces automatizovat pomocí oficiálního skriptu migrace.
Důležité
Před spuštěním skriptu migrace vždy zálohujte aplikaci z webu Azure Portal.
Stáhněte si skript pro migraci z úložiště GitHub ukázek Azure.
Spusťte skript v PowerShellu a zadejte ID předplatného, název webové aplikace, skupinu prostředků, adresu URL registru, soubor Docker Compose s kódováním Base64, hlavní název služby a cílový port.
./update-webapp.ps1 ` -subscriptionId "<subscriptionId>" ` -webAppName "<webAppName>" ` -resourceGroup "<resourceGroup>" ` -registryUrl "<registryUrl>" ` -base64DockerCompose "<base64DockerCompose>" ` -mainServiceName "<mainServiceName>" ` -targetPort "<targetPort>"Pokud váš registr vyžaduje ověření, skript vás vyzve k zadání
dockerRegistryServerUsernameadockerRegistryServerPasswordinteraktivně.
Ruční migrace
Přihlaste se k Azure a nastavte své předplatné.
az login az account set --subscription <your-subscription-id>Shromážděte požadované podrobnosti.
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 tsvPomůže vám to identifikovat ID předplatného, název aplikace, skupinu prostředků a registr kontejnerů Azure.
Vytvořte slot nasazení. Před přepnutím slotu do produkčního prostředí ověříte migrované sidecary.
az webapp deployment slot create --name <webapp-name> --resource-group <resource-group> --slot <slot-name>Dekódujte existující konfiguraci Docker Compose z produkční aplikace.
az webapp config show --name <webapp-name> --resource-group <resource-group> --query linuxFxVersionZkopírujte část base64 z výstupu a dekódujte ji v PowerShellu:
[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("<base64value>"))Pro každou službu v souboru Compose vytvořte odpovídající
containerprostředek ve slotu nasazení pod cestou URLsitecontainers.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>}}'Použijte mapování atributů Docker Compose a konfigurační Sidecar, které vám pomůže s mapováním.
Použijte požadovaný název kontejneru .
<container-name>Nastavte
isMainpro hlavní kontejner aplikace,falsepro vedlejší kontejnery.Pro
<image-name>použijte úplnou cestu k obrázku, která obsahuje název serveru. Například:"image":"myregistry.azurecr.io/myapp/backend:latest"Opakujte pro všechny kontejnery.
Přepněte slot nasazení na režim sidecar.
az webapp config set --name <webapp-name> --resource-group <resource-group> --slot <slot-name> --linux-fx-version "sitecontainers"Restartujte slot nasazení a ověřte funkčnost migrované aplikace v slotu nasazení.
az webapp restart --name <webapp-name> --resource-group <resource-group> --slot <slot-name>Jakmile bude ověřeno, přepněte slot do produkčního prostředí.
az webapp deployment slot swap --name <webapp-name> --resource-group <resource-group> --slot <slot-name> --target-slot production
Mapování atributů Docker Compose a konfigurace sidecaru
Následující pole Docker Compose jsou mapována na konfiguraci sidecaru:
| Docker Compose | Konfigurace vedlejšího modulu | Poznámky |
|---|---|---|
command, entrypoint |
startUpCommand |
|
environment |
environmentVariables |
|
image |
image |
|
ports |
targetPort |
Externí provoz podporuje jenom porty 80 a 8080. |
volumes |
volumeMounts |
Trvalé úložiště Azure se nepodporuje. |
Následující pole Docker Compose nejsou podporována v pomocných kontejnerech:
| Pole Docker Compose | Podpora | Poznámky |
|---|---|---|
build |
Nepovoleno | Předem sestavit a nahrát obrazy do registru |
depends_on |
Ignorovaný | Řazení spuštění kontejneru není zaručeno. |
networks |
Ignorovaný | Síťová komunikace je řešena interně. |
secrets |
Ignorovaný | Pro tajné kódy použijte nastavení aplikace služby App Service nebo Key Vault. |
volumes pomocí {WEBAPP_STORAGE_HOME} nebo {WEBSITES_ENABLE_APP_SERVICE_STORAGE} |
Není podporováno |
Omezení a aspekty migrace
Následující tabulka ukazuje funkce, které jsou aktuálně podporovány v aplikacích Docker Compose, ale nejsou podporovány nebo mají omezenou podporu ve sidecarech.
| Vlastnost | Docker Compose | sajdkára |
|---|---|---|
| Storage | Svazky sdílené mezi kontejnery | Úložiště specifické pro kontejnery, trvalé a omezené |
| Sítě | Názvy služeb jako názvy hostitelů | Všechny kontejnery sdílejí localhost; jedinečné porty jsou požadovány. |
| Protokolování a monitorování | Vlastní ovladače, externí nástroje | Integrovaný se službou Azure Monitor a Log Analytics |
| App Service Environment (ASE) | Podporováno | Zatím není podporováno. |
| Národní cloudové služby | Podporováno | Zatím není podporováno. |