Automatizace sestavení a údržby i image kontejneru pomocí Úlohy ACR
Kontejnery poskytují nové úrovně virtualizace, které izolují závislosti aplikací a vývojářů od infrastruktury a provozních požadavků. Zbývá ale potřeba řešit, jak se tato virtualizace aplikací spravuje a opravuje v průběhu životního cyklu kontejneru.
Co je Úlohy ACR?
Úlohy ACR je sada funkcí v rámci Azure Container Registry. Poskytuje cloudové sestavování i image kontejnerů pro platformy, včetně Linuxu, Windows a ARM, a může automatizovat opravy operačního systému a architektury pro kontejnery Dockeru. Úlohy ACR rozšiřuje nejen vývojový cyklus "vnitřní smyčky" do cloudu pomocí sestavení image kontejneru na vyžádání, ale také umožňuje automatizovaná sestavení aktivovaná aktualizacemi zdrojového kódu, aktualizacemi základní image kontejneru nebo časovači. Pomocí triggerů aktualizace základní image můžete například automatizovat pracovní postup oprav operačního systému a aplikační architektury a udržovat zabezpečená prostředí a současně dodržovat principy neměnných kontejnerů.
Scénáře úloh
Úlohy ACR několik scénářů pro sestavování a údržbu imagí kontejnerů a dalších artefaktů. Podrobnosti najdete v následujících částech tohoto článku.
- Rychlá úloha – Sestavíte a nas nabízené image kontejneru na vyžádání do registru kontejneru v Azure, aniž byste potřebovali místní instalaci modulu Dockeru. Představte
docker buildsi ,docker pushv cloudu. - Automaticky aktivované úlohy – Povolení jedné nebo více triggerů pro sestavení image:
- Úloha s více kroky – rozšíření možností sestavení a nasouování jedné image pro Úlohy ACR vícekrokové pracovní postupy založené na více kontejnerech.
Každá úloha ACR má přidružený kontext zdrojového kódu – umístění sady zdrojových souborů použitých k sestavení image kontejneru nebo jiného artefaktu. Mezi příklady kontextů patří úložiště Git nebo místní systém souborů.
Úlohy mohou také využívat proměnné spuštění, takže můžete opakovaně používat definice úloh a standardizovat značky obrázků a artefaktů.
Rychlá úloha
Cyklus vývoje vnitřní smyčky, iterativní proces psaní kódu, sestavování a testování aplikace před potvrzením správy zdrojového kódu, je ve skutečnosti začátkem správy životního cyklu kontejnerů.
Než potvrdíte svůj první řádek kódu, Úlohy ACR rychlé úlohy vám může poskytnout integrované vývojové prostředí tím, že se sestavení image kontejneru předají do Azure. Pomocí rychlých úloh můžete ověřit definice automatizovaných sestavení a zachytit potenciální problémy před potvrzením kódu.
Pomocí známého formátu příkaz az acr build v Azure CLI vezme kontext (sadu souborů k sestavení), odešle ji do Úlohy ACR a ve výchozím nastavení předá sestavenou image do registru po docker build dokončení.
Úvod najdete v rychlém startu k sestavení a spuštění image kontejneru v Azure Container Registry.
Úlohy ACR je navržený jako primitiv životního cyklu kontejneru. Můžete například integrovat Úlohy ACR do řešení CI/CD. Spuštěním příkazu az login s objektem službymůže vaše řešení CI/CD vydávat příkazy az acr build pro spuštění sestavení image.
Naučte se používat rychlé úlohy v prvním kurzu Úlohy ACR sestavení imagí kontejnerův cloudu pomocí Úlohy služby Azure Container Registry .
Tip
Pokud chcete sestavit a na push image přímo ze zdrojového kódu bez souboru Dockerfile, Azure Container Registry příkaz az acr pack build (preview). Tento nástroj sestaví a nasoulá image ze zdrojového kódu aplikace pomocí nativních cloudových buildpacků.
Aktivace úlohy při aktualizaci zdrojového kódu
Aktivace sestavení image kontejneru nebo vícekrokové úlohy při potvrzených kódech nebo při vytvoření nebo aktualizaci žádosti o GitHub nebo Azure DevOps. Například nakonfigurujte úlohu sestavení pomocí příkazu Azure CLI az acr task create zadáním úložiště Git a volitelně větve a souboru Dockerfile. Když váš tým aktualizuje kód v úložišti, Úlohy ACR vytvořený webhook aktivuje sestavení image kontejneru definované v úložišti.
Úlohy ACR při nastavení úložiště Git jako kontextu úlohy podporuje následující triggery:
| Trigger | Ve výchozím nastavení povolená |
|---|---|
| Potvrzení | Yes |
| Žádost o přijetí změn | No |
Poznámka
V Úlohy ACR nepodporuje potvrzení ani triggery žádostí o GitHub Enterprise změn.
Zjistěte, jak aktivovat sestavení při potvrzení zdrojového kódu v druhém kurzu Úlohy ACR, Automatizace sestavení i image kontejneru pomocí Úlohy služby Azure Container Registry.
Osobní přístupový token
Pokud chcete nakonfigurovat trigger aktualizace zdrojového kódu, musíte úkolu poskytnout token PAT, který nastaví webhook ve veřejném nebo privátním GitHub nebo Azure DevOps. Požadované obory pro pat jsou následující:
| Typ repo | GitHubu | DevOps |
|---|---|---|
| Veřejné repo | repo:status public_repo |
Code (Read) |
| Privátní repo | repo (úplné řízení) | Code (Read) |
Informace o vytvoření patu najdete v GitHub nebo Azure DevOps dokumentaci.
Automatizace oprav operačního systému a architektury
Schopnost sestavení Úlohy ACR skutečně vylepšit pracovní postup sestavení kontejneru pochází z jeho schopnosti rozpoznat aktualizaci základní image. Základní image je funkce většiny imagí kontejnerů. Je to nadřazená image, na které je založená jedna nebo více imagí aplikací. Základní image obvykle obsahují operační systém a někdy architektury aplikací.
Úlohu ACR můžete nastavit tak, aby při sestavování image aplikace sledovala závislost na základní i kopii. Když se aktualizovaná základní image předá do vašeho registru nebo když se základní image aktualizuje ve veřejném umístění, například v Docker Hub, může Úlohy ACR automaticky vytvářet image aplikací, které na ní jsou založené. Díky této automatické detekci a opětovnému Úlohy ACR vám aplikace ušetří čas a úsilí, které se obvykle vyžaduje k ručnímu sledování a aktualizaci každé image aplikace odkazující na aktualizovanou základní image.
Přečtěte si další informace o triggerech aktualizace základní image pro Úlohy ACR. A v kurzu Automatizace sestavení image kontejneru při aktualizaci základní image v registru kontejneru Azure se naučíte aktivovat sestavení image při naslaní základní image do registru kontejneru.
Naplánování úlohy
Volitelně můžete úlohu naplánovat nastavením jednoho nebo více triggerů časovače při vytváření nebo aktualizaci úlohy. Plánování úlohy je užitečné pro spouštění úloh kontejnerů podle definovaného plánu, spouštění operací údržby nebo testů imagí pravidelně naslaných do registru. Podrobnosti najdete v tématu Spuštění úlohy ACR podle definovaného plánu.
Úlohy s více kroky
Úlohy s více kroky poskytují definici a spouštění úloh na základě kroků pro sestavování, testování a opravy imagí kontejnerů v cloudu. Kroky úloh definované v souboru YAML určují jednotlivé operace sestavení a zápisu pro image kontejnerů nebo jiné artefakty. Mohou také definovat spuštění jednoho nebo více kontejnerů, u každého kroku pomocí kontejneru jako prostředí pro spuštění.
Můžete například vytvořit úlohu s více kroky, která automatizuje následující:
- Sestavení image webové aplikace
- Spuštění kontejneru webové aplikace
- Sestavení testovací image webové aplikace
- Spuštění testovacího kontejneru webové aplikace, který provádí testy spuštěného kontejneru aplikace
- Pokud testy projdou, sestavte balíček archivu chartu Helm.
- Provedení pomocí
helm upgradenového balíčku archivu chartu Helm
Úkoly s více kroky umožňují rozdělit sestavení, spuštění a testování image do kompozibilnějších kroků s podporou závislostí mezi kroky. Díky úlohám s více kroky Úlohy ACR máte podrobnější kontrolu nad vytvářením, testováním a pracovními postupy oprav operačního systému a architektury.
Další informace o úlohách s více kroky najdete v části Spouštění vícekrokové úlohy sestavení, testovánía oprav v Úlohy ACR .
Kontextová umístění
Následující tabulka uvádí příklady podporovaných kontextových umístění pro Úlohy ACR:
| Umístění kontextu | Popis | Příklad |
|---|---|---|
| Místní systém souborů | Soubory v rámci adresáře v místním systému souborů. | /home/user/projects/myapp |
| GitHub hlavní větev | Soubory v hlavní (nebo jiné výchozí) větvi veřejného nebo privátního úložiště GitHub úložiště. | https://github.com/gituser/myapp-repo.git |
| GitHub větev | Konkrétní větev veřejného nebo privátního GitHub. | https://github.com/gituser/myapp-repo.git#mybranch |
| podsložka GitHub | soubory v podsložce ve veřejném nebo privátním úložišti GitHub. Příklad zobrazuje kombinaci specifikace větve a podsložky. | https://github.com/gituser/myapp-repo.git#mybranch:myfolder |
| GitHub potvrzení | konkrétní potvrzení ve veřejném nebo privátním úložišti GitHub. Příklad zobrazuje kombinaci specifikace SHA (commit hash) a podsložky. | https://github.com/gituser/myapp-repo.git#git-commit-hash:myfolder |
| podsložka Azure DevOps | Soubory v podsložce ve veřejném nebo privátním úložišti Azure. Příklad ukazuje kombinaci specifikace větve a podsložek. | https://dev.azure.com/user/myproject/_git/myapp-repo#mybranch:myfolder |
| Vzdálená tarballu | Soubory v komprimovaném archivu na vzdáleném serveru webserver. | http://remoteserver/myapp.tar.gz |
| Artefakt v registru kontejneru | Soubory artefaktů OCI v úložišti registru kontejnerů. | oci://myregistry.azurecr.io/myartifact:mytag |
Poznámka
Když použijete úložiště Git jako kontext pro úlohu aktivovanou aktualizací zdrojového kódu, musíte zadat osobní přístupový token (Pat).
Image – platformy
Ve výchozím nastavení ACR úlohy vytváří image pro Linux OS a amd64. zadejte --platform značku pro vytváření Windows imagí nebo imagí Linux pro jiné architektury. Zadejte operační systém a volitelně podporovanou architekturu ve formátu operačního systému/architektury (například --platform Linux/arm ). V případě architektur ARM můžete volitelně zadat variantu ve formátu OS/Architecture/variant (například --platform Linux/arm64/v8 ):
| Operační systém | Architektura |
|---|---|
| Linux | amd64 arm arm64 386 |
| Windows | amd64 |
Zobrazení výstupu úkolu
Každý běh úlohy generuje výstup protokolu, který můžete zkontrolovat, abyste zjistili, jestli se kroky úlohy úspěšně spustily. Když úlohu spouštíte ručně, výstup protokolu pro spuštění úlohy je streamování do konzoly a také uložený pro pozdější načtení. Když se úkol automaticky aktivuje, například potvrzením zdrojového kódu nebo obnovením základní image, ukládají se jenom protokoly úloh. Zobrazte protokoly spuštění v Azure Portal nebo použijte příkaz AZ ACR Task logs .
Přečtěte si další informace o zobrazení a správě protokolů úloh.
Další kroky
Až budete připraveni automatizovat sestavení a údržbu imagí kontejneru v cloudu, podívejte se na řadu kurzů ACR Tasks.
volitelně můžete nainstalovat rozšíření docker pro Visual Studio Code a rozšíření účtu azure pro práci se službou azure container registry. Vyhrajte a nahrajte image do služby Azure Container registry nebo spouštějte ACR úlohy, a to všechno v rámci Visual Studio Code.