Volba pracovního postupu sestavení a nasazení kontejneru

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ž azd image sestaví místně, sestaví ji vzdáleně v Azure Container Registry (ACR) nebo používá existující image.
  • Zda azd publikuje 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 image namísto project, a azd ho 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 remoteBuild a nepodporuje možnosti azd publish --from-package ani azd publish --to, protože azd tento 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:

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.