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.

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

  1. Vytvoření image webové aplikace
  2. Spuštění kontejneru webové aplikace
  3. Vytvoření testovací image webové aplikace
  4. Spusťte testovací kontejner webové aplikace, který provádí testy na spuštěném kontejneru aplikace.
  5. Pokud testy projdou, vytvořte balíček archivu chartu Helm.
  6. 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.