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.

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í:

  1. Sestavení image webové aplikace
  2. Spuštění kontejneru webové aplikace
  3. Sestavení testovací image webové aplikace
  4. Spuštění testovacího kontejneru webové aplikace, který provádí testy spuštěného kontejneru aplikace
  5. Pokud testy projdou, sestavte balíček archivu chartu Helm.
  6. Provedení pomocí helm upgrade nové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.