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.
Příkaz azd publish umožňuje vytvářet a odesílat image kontejnerů do registru kontejnerů, jako je Azure Container Registry nebo Docker Hub, aniž byste je okamžitě nasadili do prostředku Azure.
Oddělením kroků sestavení a push od kroku nasazení můžete implementovat pokročilejší pracovní postupy nasazení, jako je například vzorec "postavit jednou, nasadit všude". Tento přístup je užitečný pro kontejnerizované aplikace, které cílí na Azure Container Apps nebo Azure Kubernetes Service (AKS).
Proč používat azd publish?
Ve standardním azd pracovním postupu azd deploy provádí příkaz tři akce v posloupnosti:
- Sestavení: Sestaví kód aplikace do image kontejneru.
- Push: Nahraje image do registru.
- Nasazení: Aktualizuje hostující službu Azure (například Container Apps), aby se spustila nová image.
I když je tento přístup vhodný pro vývoj v rámci iterací, předpokládá se, že každé nasazení vyžaduje nový build. V produkčních scénářích často chcete:
- Jednou sestavte a nasaďte všude: Vytvořte jeden artefakt (image), otestujte ho ve vývojovém prostředí a pak ho nasadte do produkčního prostředí bez jeho opětovného sestavení.
- Centralizované artefakty: K ukládání imagí pro všechna vaše prostředí použijte jednu sdílenou službu Azure Container Registry (ACR).
- Zlepšení zabezpečení: Zajistěte, aby se do produkčního prostředí nasazovaly jenom ověřené a otestované image.
azd publish umožňuje tyto scénáře zpracováním pouze kroků 1 a 2 (sestavení a nabízení). Pomocí předpublikovaného image můžete pak použít azd deploy s konkrétními flagy ke zpracování kroku 3 (Nasazení).
Klíčové funkce
- Nezávislé publikování: Publikování imagí do registru bez aktivace nasazení
-
Vlastní cíle: Pomocí příznaku
--tourčete přesně, kam se má obrázek přenést ([registry/]repository[:tag], přepisuje výchozí konvence pojmenování). - Podpora registru třetích stran: Odesílat do externích registrů (jako je Docker Hub) kromě registru Azure Container Registry.
-
Podpora háku: Podporuje
prepublishapostpublishháky pro vlastní automatizaci. - Cílení na služby: Aktuálně podporuje služby hostované v Azure Container Apps a AKS.
Usage
Sestavení a publikování image pro konkrétní službu definovanou ve vašem azure.yaml:
azd publish <service-name>
Sestavení a publikování všech služeb:
azd publish --all
Parametry
| Flag | Description |
|---|---|
--all |
Publikuje všechny služby definované v .azure.yaml |
--from-package <image> |
Používá existující místní image nebo balíček místo sestavení ze zdroje. |
--to <image-ref> |
Určuje odkaz na cílovou image (například <your-registry>.azurecr.io/my-app:v1). Přepíše výchozí pojmenování v azure.yaml. |
Examples
Publikujte konkrétní službu na vlastní značku:
azd publish api-service --to <your-registry>.azurecr.io/api-service:v1.0.0
Publikovat místní image do vzdáleného registru:
Pokud jste image už vytvořili místně (například: local-api:dev), můžete ji označit a odeslat pomocí azdpříkazu :
azd publish api-service --from-package local-api:dev --to <your-registry>.azurecr.io/api-service:v1.0.0
Scénář: Sestavení jednou, nasazení všude
Běžný produkční pracovní postup zahrnuje vytvoření image jednou a její podporu prostřednictvím několika prostředí, jako je vývoj –> testování –> Prod. Dosáhnete toho pomocí kombinace azd publish a azd deploy.
Publikujte obrázek:
Sestavte kód a nasdílejte ho do sdíleného registru.
azd publish api-service --to <your-registry>.azurecr.io/my-app:v1.0.0Nasazení do vývojového prostředí:
Nasaďte konkrétní verzi image do vývojového prostředí. Příznak
--from-packageříkáazd deploy, aby přeskočil kroky sestavení a nahrání a pouze aktualizoval konfiguraci služby.azd env select dev azd deploy api-service --from-package <your-registry>.azurecr.io/my-app:v1.0.0Zvýšení úrovně do produkčního prostředí:
Po testování ve vývojovém prostředí nasaďte stejný odkaz na image do produkčního prostředí.
azd env select prod azd deploy api-service --from-package <your-registry>.azurecr.io/my-app:v1.0.0
Porovnání s jinými příkazy
| Command | Provedené akce | Nejlepší pro |
|---|---|---|
azd publish |
Sestavení -> Push | Pipeliny CI/CD, vytváření artefaktů, pracovní postupy Postavit jednou |
azd publish --from-package |
Jenom nabízení | Odesílá předem vytvořené artefakty do prostředí. |
azd deploy |
Sestavení –> Odeslání –> Nasazení | Standardní iterace vývoje (vnitřní smyčka). |
azd deploy --from-package |
Nasadit pouze | Nasazení předem připravených nebo předem publikovaných artefaktů do prostředí |
azd up |
Zajištění – Sestavení –>> Nahrání –> Nasazení | Začínáme inicializací nových prostředí od začátku |
Poznámka:
Výchozí chování azd up zůstává beze změny. Stále orchestruje kompletní proces od začátku do konce. Pracovní postupy v azure.yaml můžete však přizpůsobit tak, aby bylo možné v případě potřeby použít azd publish.
Konfigurace v azure.yaml
Nakonfigurujte výchozí nastavení Dockeru pro vaše služby v azure.yaml. Příkaz azd publish tato nastavení respektuje, pokud je nepřepíše příznakem jako --to.
name: my-app
services:
api:
project: ./src/api
host: containerapp
docker:
registry: 'docker.io/myusername' # Default registry
image: 'my-api' # Default image name
tag: 'latest' # Default tag
Při této konfiguraci by spuštěním azd publish api přeneslo do docker.io/myusername/my-api:latest.