Automatizace sestavení a údržby imagí kontejneru pomocí ACR Tasks

Kontejnery poskytují nové úrovně virtualizace a izolují závislosti aplikací a vývojářů od požadavků na infrastrukturu a provoz. Co ale zůstává, je potřeba řešit, jak se tato virtualizace aplikací spravuje a opravuje v průběhu životního cyklu kontejneru.

Co je ACR Tasks?

ACR Tasks je sada funkcí v rámci 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ý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. Pomocí triggerů aktualizace základní image můžete například automatizovat pracovní postup oprav operačního systému a architektury aplikací a udržovat tak zabezpečená prostředí a současně dodržovat zásady neměnných kontejnerů.

Scénáře úloh

ACR Tasks podporuje několik scénářů vytváření a údržby 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 vytvoření image kontejneru nebo jiného artefaktu. Mezi příklady kontextů patří ú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

Cyklus vývoje vnitřní smyčky, iterativní proces psaní kódu, sestavení 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ů.

Před potvrzením prvního řádku kódu může funkce rychlých úloh ACR Tasks poskytnout integrované vývojové prostředí přesměrováním 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ři použití známého docker build formátu příkaz az acr build v Azure CLI přebírá kontext (sadu souborů, které se mají sestavit), odešle ho do ACR Tasks a ve výchozím nastavení po dokončení odešle sestavenou image do svého registru.

Úvod najdete v rychlém startu k sestavení a spuštění image kontejneru v Azure Container Registry.

Služba ACR Tasks je navržená jako primitivní životní cyklus kontejneru. Můžete například integrovat ACR Tasks do řešení CI/CD. Spuštěním příkazu az login s instančním objektem by pak vaše řešení CI/CD mohlo vydat příkazy az acr build , které spustí sestavení imagí.

Naučte se používat rychlé úlohy v prvním kurzu ACR Tasks– Vytváření imagí kontejnerů v cloudu pomocí Azure Container Registry Tasks.

Tip

Pokud chcete sestavit a vložit 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 nasdílí image ze zdrojového kódu aplikace pomocí balíčků buildů nativních pro cloud.

Úloha aktivace při aktualizaci zdrojového kódu

Aktivace sestavení image kontejneru nebo vícekrokové úlohy při potvrzení kódu nebo vytvoření 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 Můžete například nakonfigurovat ú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, když jako kontext úlohy nastavíte úložiště Git:

Trigger Ve výchozím nastavení povolená
Potvrzení Yes
Žádost o přijetí změn Ne

Poznámka

ACR Tasks v současné době nepodporuje triggery potvrzení nebo žádosti o přijetí změn v úložištích GitHub Enterprise.

Naučte se aktivovat sestavení na potvrzení zdrojového kódu v druhém kurzu ACR Tasks automatizace sestavení imagí kontejneru pomocí Azure Container Registry Tasks.

Token osobního přístupu

Pokud chcete nakonfigurovat trigger aktualizace zdrojového kódu, musíte úkolu poskytnout token 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 pro pat jsou následující:

Typ úložiště GitHubu DevOps
Veřejné úložiště repo: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 ke GitHubu nebo Azure DevOps .

Automatizace oprav operačního systému a architektury

Schopnost služby ACR Tasks skutečně vylepšit pracovní postup sestavení kontejneru spočívá v její schopnosti rozpoznat aktualizaci základní image. Základní image, která je součástí většiny imagí kontejneru, je nadřazená image, na které je založena jedna nebo více imagí aplikace. Základní image obvykle obsahují operační systém a někdy i rozhraní aplikací.

Úlohu ACR můžete nastavit tak, aby při vytváření image aplikace sledovala závislost na základní imagi. Když se aktualizovaná základní image nasdílí do registru nebo se základní image aktualizuje ve veřejném úložišti, například v Docker Hub, může služba ACR Tasks na základě ní automaticky sestavit 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é obvykle potřebujete k ručnímu sledování a aktualizaci každé image aplikace odkazující na vaši aktualizovanou základní image.

Přečtěte si další informace o triggerech aktualizace základní image pro ACR Tasks. V kurzu Automatizace sestavení imagí při aktualizaci základní image v registru kontejneru se dozvíte, jak aktivovat sestavení image kontejneru při aktualizaci základní image v registru kontejneru.

Naplánování úlohy

Volitelně můžete úlohu naplánovat nastavením jedné nebo více triggerů časovače při vytváření nebo aktualizaci úkolu. 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 imagích pravidelně odsílaných do registru. Podrobnosti najdete v tématu Spuštění úlohy ACR podle definovaného plánu.

Úlohy s více kroky

Vícekrokové úlohy poskytují definici a provádění úloh založených na krocích pro sestavování, testování a opravy imagí kontejnerů v cloudu. Kroky úlohy definované v souboru YAML určují jednotlivé operace sestavení a nabízení pro image kontejneru 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 vícekrokovou úlohu, 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. Spuštění testovacího kontejneru webové aplikace, který provádí testy se spuštěným kontejnerem aplikace.
  5. Pokud testy projdou, sestavte balíček archivu chartů Helm.
  6. Provedení příkazu helm upgrade pomocí nového archivačního balíčku chartů Helm

Vícekrokové úlohy umožňují rozdělit sestavení, spuštění a testování image do více sestavitelných kroků s podporou závislostí mezi kroky. Díky vícekrokovým úlohám ve službě 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.

Informace o úlohách s více kroky najdete v tématu Spouštění úloh sestavení, testování a oprav s více kroky ve službě ACR Tasks.

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 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ě GitHub. https://github.com/gituser/myapp-repo.git#mybranch
Podsložka GitHubu Soubory v rámci podsložky ve veřejném nebo privátním úložišti GitHub. 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 rámci podsložky 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á koule 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

Pokud používáte úložiště Git jako kontext pro úlohu aktivovanou aktualizací zdrojového kódu, musíte poskytnout token PAT (Personal Access Token).

Platformy obrázků

Ve výchozím nastavení ACR Tasks sestavuje 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
arm
arm64
386
Windows amd64

Zobrazení výstupu úkolu

Každé spuštění úlohy vygeneruje výstup protokolu, který můžete zkontrolovat a zjistit, jestli kroky úkolu proběhly úspěšně. 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 automaticky aktivuje, například potvrzením zdrojového kódu nebo aktualizací základní image, protokoly úkolů se ukládají jenom. Prohlédněte si 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ů ke službě ACR Tasks.

Volitelně si můžete nainstalovat rozšíření Dockeru pro Visual Studio Code a rozšíření Azure Account , abyste mohli pracovat s registry kontejnerů Azure. Stáhněte a nasdílte image do registru kontejneru Azure nebo spusťte úlohy ACR – to vše v editoru Visual Studio Code.