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.
Azure rozhraní příkazového řádku pro vývojáře (azd) může vytvářet, publikovat a nasazovat image kontejnerů napříč několika Azure hostitelskými službami. Kontejnerový pracovní postup kombinuje cílové hostitelské prostředí s umístěním pro sestavení a způsobem publikování. Nejlepší kombinace závisí na vaší aplikaci, nástrojích, které váš tým má k dispozici, a způsobu, jakým propagujete image mezi prostředími.
Pomocí tohoto článku můžete tyto volby shodovat s vašimi potřebami. Porovnává následující rozhodnutí:
- Která služba Azure hostuje váš kontejner.
- Ať už
azdimage sestaví místně, sestaví ji vzdáleně v Azure Container Registry (ACR) nebo používá existující image. - Zda
azdpublikuje a nasazuje image společně, nebo v samostatných krocích.
Článek porovnává tyto služby hostování pro obecné účely:
Začněte porovnáním cílů hostování a možností sestavení image. Jakmile tyto volby pochopíte, použijte je k identifikaci kandidátského pracovního postupu v části Porovnat pracovní postupy nasazení kontejneru .
Porovnání cílů hostování kontejnerů
Vlastnost host v azure.yaml určuje službu Azure, do které azd nasadí váš kontejner. Vyberte hostitele nezávisle na umístění sestavení image.
| Hodnota hostitele | cíl hostování Azure | Pracovní postup kontejneru | Considerations |
|---|---|---|---|
containerapp |
Azure Container Apps a úlohy služby Container Apps | Sestavte z projektu a souboru Dockerfile nebo nasaďte předem připravenou image. | Podporuje proměnné prostředí na úrovni služby a strategie nasazení specifické pro kontejnerové aplikace. Pro úlohy Container Apps použijte stejnou hodnotu hostitele. |
appservice |
Linux Web App for Containers ve službě Azure App Service | Sestavte z projektu a ze souboru Dockerfile nebo nasaďte předem sestavený obraz. | Vaše infrastruktura musí zřídit lokalitu připravenou pro kontejner Linux a nakonfigurovat přístup spravované identity k ACR.
azd deploy aktualizuje pouze odkaz na image. |
aks |
Azure Kubernetes Service | Sestavte image a nasaďte manifesty Kubernetes, charty Helm nebo konfigurace Kustomize. | Poskytuje největší kontrolu, ale vyžaduje správu clusteru a konfigurace Kubernetes. Použití nástrojů Helm nebo Kustomize s azd vyžaduje povolení příznaků funkcí ve verzi alfa. |
azure.ai.agent a ai.endpoint hostitelé také podporují konfiguraci nástroje Docker pro specializované scénáře Microsoft Foundry. Pro tyto úlohy viz Nasazení do online koncových bodů Microsoft Foundry a rozšíření agenta Microsoft Foundry.
Porovnání možností sestavení bitové kopie
Definice služby určuje, jestli azd sestaví image nebo začne s existující imagí.
| Možnost sestavení | Požadovaná konfigurace | Kde běží sestavení | Místní kontejnerový modul | Nejvhodnější pro |
|---|---|---|---|---|
| Místní sestavení |
project a volitelně, docker |
Vaše vývojové prostředí nebo CI Runner | Povinné | Rychlé iterace vývoje a sestavení prostředí, která již poskytují Docker nebo Podman. |
| Vzdálené sestavení ACR |
project a docker.remoteBuild: true |
Azure Container Registry | Nepožaduje se, pokud se azd po selhání vzdáleného sestavení nevrátí zpět. |
Konzistentní cloudové sestavení a prostředí bez místního kontejnerového modulu Dokumentovaný pracovní postup vzdáleného sestavení cílí na Azure Container Apps. |
Existující image spravovaná pomocí azd |
image |
Žádné sestavení ze zdrojového kódu | Může být vyžadováno pro operace v rámci životního cyklu bitové kopie. | Obrazy, které už existují lokálně nebo v registru a které azd může stáhnout, otagovat a nahrát. |
| Přímý přenos vzdáleného obrazu |
image a docker.imagePassthrough: true |
Žádné sestavení | Nepovinné | Plně kvalifikované vzdálené obrazy, které má hostitelský prostředek používat beze změn. |
Při čtení článků o konfiguraci jednotlivých možností mějte na paměti tyto koncepční rozdíly:
-
Předpřipravený image používá vlastnost
imagenamístoproject, aazdho stále může stáhnout, otagovat a odeslat. - Vzdálené sestavení ACR po selhání vzdáleného sestavení přejde na místní sestavení pomocí Dockeru nebo Podmanu, pokud je k dispozici podporovaný kontejnerový engine.
-
Předávání obrazů vyžaduje plně kvalifikovaný odkaz na vzdálený obraz včetně registru, nelze jej kombinovat s
remoteBuilda nepodporuje možnostiazd publish --from-packageaniazd publish --to, protožeazdtento obraz nespravuje.
Úplnou konfiguraci jednotlivých možností najdete v tématu Podpora vzdálených sestavení s Azure Container Registry, použití registrů kontejnerů třetích stran, nasazení kontejnerů služby App Service s rozhraním příkazového řádku pro vývojáře Azure a schématudocker.
Porovnání pracovních postupů nasazení kontejnerů
Po porovnání cílů hostování kontejnerů v části Porovnání cílů hostování kontejnerů a možností sestavení imagí v části Porovnání možností sestavení imagí použijte následující tabulku, abyste určili nejvhodnější pracovní postupy pro své potřeby.
| Pokud potřebujete | Začíná na | Proč |
|---|---|---|
| Nasazení kontejnerizované aplikace na bezserverovou platformu | Azure Container Apps s místním sestavením | Tento pracovní postup sestaví a nasadí projekt založený na souboru Dockerfile v jednom pracovním postupu vývoje. |
| Sestavení bez místní instalace Dockeru nebo Podmanu | Azure Container Apps se vzdáleným sestavením v ACR | ACR v Azure sestaví image z vašeho projektu a souboru Dockerfile. |
| Nasaďte image, kterou vytvoří jiný systém pro sestavení | Azure Container Apps nebo App Service s předem připravenou imagí | Vlastnost image identifikuje existující image místo zdrojového kódu, který se má sestavit. |
| Znovu použít vzdálený obraz bez stažení, označení tagem nebo nahrání | Azure Container Apps s předáváním obrázku |
azd předá plně kvalifikovaný odkaz na image přímo do hostitelského prostředku. |
| Hostování tradiční webové aplikace jako kontejneru Linuxu | Webová aplikace pro kontejnery ve službě Azure App Service | App Service poskytuje integrovanou platformu pro hostování webů, zatímco infrastruktura řídí konfiguraci lokality připravené pro kontejnery. |
| Řízení manifestů Kubernetes a konfigurace clusteru | Azure Kubernetes Service (AKS) |
azd může sestavit a publikovat image a pak nasadit manifesty Kubernetes, charty Helm nebo konfigurace Kustomize. |
| Sestavte jednou a nasaďte stejnou image napříč prostředími |
azd publish, po němž následuje azd deploy --from-package |
Publikování a nasazení jsou oddělené, takže každé prostředí obdrží stejnou image. |
Každý řádek kombinuje možnosti hostování z Porovnání cílových prostředí pro hostování kontejnerů a možnosti sestavení z Porovnání možností sestavení imagí jako výchozí bod. Nakonfigurujte svou volbu v azure.yaml a nechte své soubory Bicep nebo Terraform zřídit odpovídající prostředky pro hostování a registr.
Minimální definice služby určuje host, zdroj sestavení a soubor Dockerfile:
services:
api:
project: ./src/api
language: docker
host: containerapp
docker:
path: ./Dockerfile
Pokud chcete tuto definici přizpůsobit jinému host hostiteli, změňte hodnotu a postupujte podle konfiguračního kontraktu pro jednotlivé hostitele:
- Nasazení do Azure Container Apps pomocí Azure Developer CLI
- Nasazení kontejnerů služby App Service pomocí rozhraní příkazového řádku pro vývojáře Azure
- Podpora Helmu a Kustomize
Porovnání příkazů pro publikování a nasazení
Po výběru hostitele a možnosti sestavení vyberte, zda chcete publikování a nasazení bitové kopie sloučit, nebo oddělit.
| Command | Akce obrázku | akce prostředku Azure | Použít, když |
|---|---|---|---|
azd up |
Sestavit a odeslat | Zřízení a nasazení | Chcete vytvořit nebo aktualizovat kompletní prostředí a nasadit aplikaci v jednom pracovním postupu. |
azd deploy |
Sestavení a odeslání | Nasazení | Infrastruktura již existuje a chcete nasadit změny aplikace. |
azd publish |
Sestavení a odeslání | None | Chcete vytvořit artefakt v registru, aniž byste ho nasadili.
azd publish podporuje služby Container Apps a AKS. |
azd publish --from-package <image> |
Nahrání existujícího místního obrazu | None | Další proces sestavil obraz a chcete ho pomocí azd publikovat. |
azd deploy --from-package <image> |
None | Nasazení | Chcete nasadit konkrétní obraz bez opětovného sestavení. |
Publikujte například image s verzí a nasaďte stejnou image do jiného prostředí:
azd publish api --to myregistry.azurecr.io/my-api:v1.0.0
azd env select production
azd deploy api --from-package myregistry.azurecr.io/my-api:v1.0.0
Tento pracovní postup zabraňuje rozdílům, ke kterým může dojít při opětovném sestavení image pro každé prostředí. Úplný postup propagace najdete v tématu pracovní postupy publikování Azure Developer CLI.