Automatizace sestavení a údržby imagí kontejneru pomocí ACR Tasks
Kontejnery poskytují nové úrovně virtualizace, izolace závislostí aplikací a vývojářů z infrastruktury a provozních požadavků. Zůstává však potřeba vyřešit způsob správy a opravy virtualizace aplikace v průběhu životního cyklu kontejneru.
Co je ACR Tasks?
ACR Tasks je sada funkcí ve službě Azure Container Registry. Poskytuje cloudové vytváření imagí kontejnerů pro platformy , včetně Linuxu, Windows a ARM, a dokáže automatizovat opravy operačního systému a architektury pro kontejnery Dockeru. ACR Tasks nejen rozšiřuje váš vývojový cyklus vnitřní smyčky do cloudu pomocí sestavení imagí 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. Například pomocí triggerů aktualizace základní image můžete automatizovat pracovní postup oprav operačního systému a architektury aplikací a udržovat zabezpečená prostředí a zároveň dodržovat principy neměnných kontejnerů.
[! DŮLEŽITÉ] ACR dočasně pozastavuje úlohy ACR spuštěné z bezplatných kreditů Azure. To může mít vliv na existující spuštění úloh. Pokud narazíte na problémy, otevřete případ podpory pro náš tým a poskytněte další pokyny. Upozorňujeme, že toto pozastavení neovlivní stávající zákazníky. Kdykoli se pozastavení zvedne, aktualizujeme zde upozornění na naši dokumentaci.
[! UPOZORNĚNÍ] Upozorňujeme, že všechny informace poskytnuté na příkazovém řádku nebo jako součást identifikátoru URI mohou být protokolovány jako součást trasování diagnostiky služby Azure Container Registry (ACR). Patří sem citlivá data, jako jsou přihlašovací údaje, osobní přístupové tokeny GitHubu a další zabezpečené informace. Buďte opatrní, abyste zabránili potenciálním rizikům zabezpečení, je důležité se vyhnout zahrnutí citlivých podrobností do příkazového řádku nebo identifikátorů URI, které podléhají protokolování diagnostiky.
Scénáře úkolů
ACR Tasks podporuje 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 – Sestavení a nasdílení jedné image kontejneru do registru kontejnerů na vyžádání v Azure bez nutnosti instalace místního modulu Docker Engine Představte si
docker build
,docker push
že v cloudu. - Automaticky aktivované úlohy – Povolení jedné nebo více triggerů k sestavení image:
- Úloha s více kroky – Rozšíření funkce sestavení a nabízení jedné image úloh ACR pomocí vícekrokových pracovních postupů založených na více krocích.
Každá úloha ACR má přidružený kontext zdrojového kódu – umístění sady zdrojových souborů sloužících k sestavení image kontejneru nebo jiného artefaktu. Příklady kontextů zahrnují úložiště Git nebo místní systém souborů.
Úlohy můžou také využívat proměnné spuštění, takže můžete opakovaně používat definice úloh a standardizovat značky pro obrázky a artefakty.
Rychlý úkol
Vývojový cyklus 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 skutečně začátek správy životního cyklu kontejneru.
Před potvrzením prvního řádku kódu může funkce rychlé úlohy ACR Tasks poskytnout integrované vývojové prostředí tím, že přesměruje sestavení imagí kontejneru do Azure. Pomocí rychlých úloh můžete před potvrzením kódu ověřit definice automatizovaného sestavení a zachytit potenciální problémy.
Příkaz az acr build v Azure CLI používá známý docker build
formát (sadu souborů k sestavení), odešle ho do služby ACR Tasks a ve výchozím nastavení odešle sestavenou image do svého registru po dokončení.
Úvod najdete v rychlém startu pro sestavení a spuštění image kontejneru ve službě Azure Container Registry.
ACR Tasks je navržený jako primitivní životní cyklus kontejneru. Například integrujte ACR Tasks do svého řešení CI/CD. Spuštěním příkazu az login s instančním objektem by vaše řešení CI/CD pak mohlo vydat příkazy az acr build, které spustí sestavení imagí.
Naučte se používat rychlé úlohy v prvním kurzu ACR Tasks, sestavení imagí kontejnerů v cloudu pomocí služby Azure Container Registry Tasks.
Tip
Pokud chcete sestavit a odeslat image přímo ze zdrojového kódu bez souboru Dockerfile, azure Container Registry poskytuje příkaz az acr pack build (Preview). Tento nástroj sestaví a odešle image ze zdrojového kódu aplikace pomocí balíčků Buildpack nativních pro cloud.
Aktivace úlohy při aktualizaci zdrojového kódu
Aktivace sestavení image kontejneru nebo vícekrokové úlohy při potvrzení kódu nebo aktualizaci žádosti o přijetí změn do veřejného nebo privátního úložiště Git v GitHubu 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, webhook vytvořený službou ACR Tasks aktivuje sestavení image kontejneru definované v úložišti.
ACR Tasks podporuje následující triggery při nastavení úložiště Git jako kontextu úkolu:
Trigger | Ve výchozím nastavení povoleno |
---|---|
Potvrzení | Ano |
Žádost o přijetí změn | No |
Poznámka:
V současné době služba ACR Tasks nepodporuje triggery potvrzení ani žádosti o přijetí změn v úložištích GitHub Enterprise.
Zjistěte, jak aktivovat sestavení na potvrzení zdrojového kódu v druhém kurzu úlohy ACR, automatizace sestavení imagí kontejneru pomocí azure Container Registry Tasks.
Osobní přístupový token
Pokud chcete nakonfigurovat trigger aktualizace zdrojového kódu, musíte zadat úlohu tokenu PAT (Personal Access Token) pro nastavení webhooku ve veřejném nebo privátním úložišti GitHub nebo Azure DevOps. Požadované obory pat jsou následující:
Typ úložiště | GitHubu | DevOps |
---|---|---|
Veřejné úložiště | úložiště:status public_repo |
Kód (čtení) |
Privátní úložiště | úložiště (úplné řízení) | Kód (čtení) |
Pokud chcete vytvořit PAT, přečtěte si dokumentaci k GitHubu nebo Azure DevOps.
Automatizace oprav operačního systému a architektury
Výkon služby ACR Tasks ke skutečnému vylepšení pracovního postupu sestavení kontejneru vychází z jeho schopnosti detekovat aktualizaci základní image. Funkce většiny imagí kontejnerů je základní image nadřazenou imagí, na které je založená jedna nebo více imagí aplikací. Základní image obvykle obsahují operační systém a někdy aplikační architektury.
Úlohu ACR můžete nastavit tak, aby při sestavování image aplikace sledovala závislost na základní imagi. Když se aktualizovaná základní image nasdílí do vašeho registru nebo se základní image aktualizuje ve veřejném úložišti, jako je do Docker Hubu, může služba ACR Tasks automaticky vytvářet na základě ní všechny image aplikací. Díky této automatické detekci a opětovnému sestavení vám ACR Tasks ušetří čas a úsilí, které se obvykle vyžaduje ke 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 aktivačních událostech aktualizace základní image pro úlohy ACR. Zjistěte, jak aktivovat sestavení image, když se základní image odešle do registru kontejneru v kurzu Automatizace sestavení imagí kontejneru při aktualizaci základní image v registru kontejneru Azure.
Naplánování úlohy
Volitelně můžete naplánovat úlohu 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 kontejneru podle definovaného plánu nebo spouštění operací údržby nebo testů na obrázcích, které se pravidelně odsílají 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 založených na krocích pro vytváření, testování a opravy imagí kontejnerů v cloudu. Kroky úlohy definované v souboru YAML určují jednotlivé operace sestavení a nabízení 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í:
- Vytvoření image webové aplikace
- Spuštění kontejneru webové aplikace
- Vytvoření testovací image webové aplikace
- Spusťte testovací kontejner webové aplikace, který provádí testy na spuštěném kontejneru aplikace.
- Pokud testy projdou, vytvořte balíček archivu chartu Helm.
helm upgrade
Provedení nového balíčku archivu chartu Helm
Úlohy s více kroky umožňují rozdělit sestavení, spuštění a testování image na více kompozibilních kroků s podporou závislostí mezi kroky. Díky vícekrokovým úlohám v ACR Tasks máte podrobnější kontrolu nad vytvářením, testováním a pracovními postupy oprav operačního systému a architektury.
Seznamte se s vícekrokovými úlohami v úlohách Spouštět vícekrokové sestavení, testování a opravy v ACR Tasks.
Kontextová umístění
Následující tabulka uvádí příklady podporovaných umístění kontextu pro úlohy ACR:
Kontextové umístění | Popis | Příklad |
---|---|---|
Místní systém souborů | Soubory v adresáři v místním systému souborů. | /home/user/projects/myapp |
Hlavní větev GitHubu | Soubory v hlavní (nebo jiné výchozí) větvi veřejného nebo privátního úložiště GitHub. | https://github.com/gituser/myapp-repo.git |
Větev GitHubu | Konkrétní větev veřejného nebo privátního úložiště GitHubu | https://github.com/gituser/myapp-repo.git#mybranch |
Podsložka GitHubu | Soubory v podsložce ve veřejném nebo privátním úložišti GitHubu Příklad ukazuje kombinaci specifikace větve a podsložky. | https://github.com/gituser/myapp-repo.git#mybranch:myfolder |
Potvrzení GitHubu | Konkrétní potvrzení ve veřejném nebo privátním úložišti GitHubu Příklad ukazuje kombinaci hodnoty hash potvrzení (SHA) a specifikace 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žky. | https://dev.azure.com/user/myproject/_git/myapp-repo#mybranch:myfolder |
Vzdálený tarball | Soubory v komprimovaném archivu na vzdáleném webovém serveru. | http://remoteserver/myapp.tar.gz |
Artefakt v registru kontejneru | Soubory artefaktů OCI v úložišti registru kontejneru | oci://myregistry.azurecr.io/myartifact:mytag |
Poznámka:
Při použití úložiště Git jako kontextu pro úlohu aktivovanou aktualizací zdrojového kódu musíte zadat osobní přístupový token (PAT).
Platformy obrázků
Ve výchozím nastavení služba ACR Tasks vytváří image pro operační systém Linux a architekturu amd64. --platform
Zadejte značku pro vytváření imagí Windows nebo imagí Linuxu pro jiné architektury. Zadejte operační systém a volitelně podporovanou architekturu ve formátu operačního systému nebo architektury (například --platform Linux/arm
). Pro architektury ARM volitelně zadejte variantu ve formátu OS/architecture/variant (například --platform Linux/arm64/v8
):
Operační systém | Architektura |
---|---|
Linux | amd64 Rameno arm64 386 |
Windows | amd64 |
Zobrazení výstupu úkolu
Každé spuštění úlohy generuje výstup protokolu, který můžete zkontrolovat a zjistit, jestli se kroky úlohy úspěšně spustily. Když úlohu aktivujete ručně, výstup protokolu pro spuštění úlohy se streamuje do konzoly a uloží se také pro pozdější načtení. Když se úloha aktivuje automaticky, například potvrzením zdrojového kódu nebo aktualizací základní image, uloží se pouze protokoly úloh. Zobrazte protokoly spuštění na webu Azure Portal nebo použijte příkaz az acr task logs .
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 sérii kurzů ACR Tasks.
Volitelně nainstalujte rozšíření Dockeru pro Visual Studio Code a rozšíření účtu Azure pro práci s registry kontejnerů Azure. Stažení a nasdílení imagí do registru kontejneru Azure nebo spuštění úloh ACR – to vše v editoru Visual Studio Code.