Automatizace sestavení a údržby imagí kontejneru pomocí úloh služby Azure Container Registry

Kontejnery poskytují nové úrovně virtualizace tím, že izolují závislosti aplikací a vývojářů z infrastruktury a provozních požadavků. Zůstává potřeba vyřešit způsob správy a opravy virtualizace aplikací v průběhu životního cyklu kontejneru.

Úlohy služby Azure Container Registry jsou sada funkcí, které:

  • Poskytnutí cloudové image kontejneru pro platformy , jako jsou Linux, Windows a ARM.
  • Rozšíření počátečních částí cyklu vývoje aplikací do cloudu s využitím sestavení imagí kontejneru na vyžádání
  • Povolte automatizované buildy aktivované aktualizacemi zdrojového kódu, aktualizace základní image kontejneru nebo časovačů.

Například pomocí triggerů pro aktualizace základní image můžete automatizovat opravy operačního systému a architektury pro kontejnery Dockeru. Tyto triggery vám můžou pomoct udržovat zabezpečená prostředí při dodržování principů neměnných kontejnerů.

Důležité

Spuštění úloh Služby Azure Container Registry se dočasně pozastaví z bezplatných kreditů Azure. Toto pozastavení 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ňující

Doporučujeme, aby všechny informace poskytnuté na příkazovém řádku nebo jako součást identifikátoru URI mohly být protokolovány jako součást diagnostického trasování 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ů

Úlohy služby Azure Container Registry podporují několik scénářů pro sestavování a údržbu imagí kontejnerů a dalších artefaktů. Tento článek popisuje rychlé úkoly, automaticky aktivované úkoly a úkoly s více kroky.

Každá úloha má přidružený kontext zdrojového kódu, což je umístění zdrojových souborů, které se používají k sestavení image kontejneru nebo jiného artefaktu. Příklady kontextů zahrnují úložiště Git a 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é úkoly

Vývojový cyklus vnitřní smyčky je iterativní proces psaní kódu, sestavování a testování aplikace před potvrzením správy zdrojového kódu. Je to ve skutečnosti začátek správy životního cyklu kontejneru.

Funkce rychlé úlohy v úlohách Služby Azure Container Registry může poskytovat integrované vývojové prostředí tím, že přesměruje sestavení imagí kontejneru do Azure. V Azure můžete sestavit a odeslat jednu image kontejneru do registru kontejneru na vyžádání, aniž byste museli instalovat místní modul Dockeru. Představte si docker build, docker push že v cloudu. 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. Příkaz pak odešle kontext do služby Azure Container Registry a (ve výchozím nastavení) odešle sestavenou image do svého registru po dokončení.

Úlohy služby Azure Container Registry jsou navržené jako primitivní životní cyklus kontejneru. Úlohy služby Azure Container Registry můžete například integrovat do řešení kontinuální integrace a průběžného doručování (CI/CD). Pokud spustíte příkaz az login s instančním objektem, řešení CI/CD může vydat příkazy az acr build ke spuštění sestavení imagí.

Informace o používání rychlých úloh najdete v rychlém startu a kurzu pro vytváření a nasazování imagí kontejnerů pomocí úloh služby Azure Container Registry.

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 nasdílí image ze zdrojového kódu aplikace pomocí balíčků Buildpack nativních pro cloud.

Automaticky aktivované úkoly

Povolením jednoho nebo více triggerů vytvořte image.

Aktivace úlohy při aktualizaci zdrojového kódu

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 můžete aktivovat sestavení image kontejneru nebo úlohu s více kroky. 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ý v úlohách služby Azure Container Registry aktivuje sestavení image kontejneru definované v úložišti.

Úlohy služby Azure Container Registry podporují následující triggery při nastavení úložiště Git jako kontextu úlohy:

Trigger Ve výchozím nastavení povoleno
Potvrzení Ano
Žádost o přijetí změn No

Poznámka:

Úlohy služby Azure Container Registry v současné době nepodporují triggery potvrzení ani žádosti o přijetí změn v úložištích GitHub Enterprise.

Informace o tom, jak aktivovat sestavení na potvrzení zdrojového kódu, najdete v tématu Automatizace sestavení imagí kontejneru pomocí úloh služby Azure Container Registry.

Osobní přístupový token

Pokud chcete nakonfigurovat trigger pro aktualizace zdrojového kódu, musíte zadat úlohu osobní přístupový token pro nastavení webhooku ve veřejném nebo privátním úložišti GitHub nebo Azure DevOps. Požadované obory pro osobní přístupový token jsou následující:

Typ úložiště GitHubu Azure 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 osobní přístupový token, přečtěte si dokumentaci k GitHubu nebo Azure DevOps.

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

Výkon úloh služby Azure Container Registry pro vylepšení pracovního postupu sestavení kontejneru vychází z jejich schopnosti detekovat aktualizaci základní image. Základní image je funkcí většiny imagí kontejnerů. Jedná se o nadřazenou image, 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 Služby Azure Container Registry 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 registru nebo se základní image aktualizuje ve veřejném úložišti, například ve službě Docker Hub, můžou úlohy služby Azure Container Registry automaticky vytvářet na základě ní všechny image aplikací. Díky tomuto automatickému zjišťování a opětovnému sestavení vám úlohy služby Azure Container Registry ušetří čas a úsilí, které se obvykle vyžaduje k ručnímu sledování a aktualizaci každé image aplikace, která odkazuje na aktualizovanou základní image.

Další informace najdete v tématu O aktualizacích základní image pro úlohy služby Azure Container Registry a kurz: Automatizace sestavení imagí kontejneru při aktualizaci základní image v registru kontejneru Azure.

Naplánování úlohy

Úlohu můžete naplánovat nastavením jednoho 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 obrázcích, které se pravidelně odsílají do registru. Další informace najdete v tématu Spuštění úlohy služby Azure Container Registry podle definovaného plánu.

Úlohy s více kroky

Rozšiřte možnosti sestavení a nabízení s jednou imagí úloh služby Azure Container Registry pomocí vícekrokových pracovních postupů založených na více kontejnerech.

Ú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 vícekrokový úkol, který automatizuje následující kroky:

  1. Vytvoření image webové aplikace
  2. Spusťte kontejner 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 Proveďte úlohu pomocí 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 úlohách služby Azure Container Registry máte podrobnější kontrolu nad pracovními postupy vytváření, testování a oprav operačního systému a architektury.

Přečtěte si další informace o spouštění úloh sestavení, testování a oprav ve více krocích ve službě Azure Container Registry.

Kontextová umístění

Následující tabulka uvádí příklady podporovaných umístění kontextu pro úlohy služby Azure Container Registry:

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:

Pokud používáte úložiště Git jako kontext pro úlohu aktivovanou aktualizací zdrojového kódu, musíte zadat osobní přístupový token.

Platformy obrázků

Úlohy služby Azure Container Registry ve výchozím nastavení vytvářejí 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

Výstup ú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 pro pozdější načtení. Když se úloha aktivuje automaticky (například potvrzením zdrojového kódu nebo aktualizací základní image), ukládají se pouze protokoly úloh. Zobrazte protokoly spuštění na webu 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.

  • Až budete připraveni automatizovat sestavení a údržbu imagí kontejneru v cloudu, přečtěte si kurz : Sestavení a nasazení imagí kontejnerů v cloudu pomocí úloh služby Azure Container Registry.

  • Volitelně si můžete přečíst o rozšíření Dockeru a rozšíření účtu Azure pro Visual Studio Code. Tato rozšíření můžete použít k načtení imagí z registru kontejneru, nabízení imagí do registru kontejneru nebo spuštění úloh služby Azure Container Registry, a to vše v editoru Visual Studio Code.