Automatisera containeravbildningsbyggen och underhåll med ACR-uppgifter

Containrar ger nya virtualiseringsnivåer som isolerar program- och utvecklarberoenden från infrastruktur- och driftkrav. Det som finns kvar är dock behovet av att hantera hur den här programvirtualiseringen hanteras och korrigeras under containerns livscykel.

Vad är ACR-uppgifter?

ACR-uppgifter är en uppsättning funktioner i Azure Container Registry. Den tillhandahåller molnbaserad containeravbildningsskapande för plattformar som Linux, Windows och ARM och kan automatisera korrigering av operativsystem och ramverk för dina Docker-containrar. ACR-uppgifter utökar inte bara din "inre loop"-utvecklingscykel till molnet med containeravbildningsbyggen på begäran, utan möjliggör även automatiserade byggen som utlöses av källkodsuppdateringar, uppdateringar av en containers basavbildning eller timers. Med utlösare för uppdatering av basavbildningar kan du till exempel automatisera arbetsflödet för korrigering av operativsystem och programramverk, upprätthålla säkra miljöer samtidigt som du följa principerna för oföränderliga containrar.

Uppgiftsscenarier

ACR-uppgifter flera scenarier för att skapa och underhålla containeravbildningar och andra artefakter. Mer information finns i följande avsnitt i den här artikeln.

Varje ACR-uppgift har en associerad källkodskontext – platsen för en uppsättning källfiler som används för att skapa en containeravbildning eller annan artefakt. Exempelkontexterna är en Git-lagringsplats eller ett lokalt filsystem.

Uppgifter kan också dra nytta av körningsvariabler, så att du kan återanvända uppgiftsdefinitioner och standardisera taggar för avbildningar och artefakter.

Snabbuppgift

Utvecklingscykeln för den inre loopen, den iterativa processen för att skriva kod, skapa och testa ditt program innan du börjar använda källkontroll, är i början av livscykelhanteringen för containrar.

Innan du genomför din första kodrad kan ACR-uppgifter snabbuppgiftsfunktionen ge en integrerad utvecklingsupplevelse genom att avlasta dina containeravbildningsbyggen till Azure. Med snabbuppgifter kan du verifiera dina automatiserade byggdefinitioner och fånga upp potentiella problem innan du utför koden.

Med det välbekanta formatet tar kommandot az acr build i Azure CLI en kontext (uppsättningen filer som ska byggas), skickar det till ACR-uppgifter och skickar som standard den skapade avbildningen till sitt register när den har docker build slutförts.

En introduktion finns i snabbstarten för att skapa och köra en containeravbildning i Azure Container Registry.

ACR-uppgifter är utformad som en primitiv containerlivscykel. Du kan till exempel integrera ACR-uppgifter din CI/CD-lösning. Genom att köra az login med ett huvudnamn förtjänsten kan din CI/CD-lösning sedan utfärda az acr build-kommandon för att starta avbildningsbyggen.

Lär dig hur du använder snabbuppgifter i den första ACR-uppgifter självstudien Skapa containeravbildningar i molnet med Azure Container Registry-uppgifter.

Tips

Om du vill skapa och push-skicka en avbildning direkt från källkoden utan en Dockerfile Azure Container Registry kommandot az acr pack build (förhandsversion). Det här verktyget skapar och push-erar en avbildning från programmets källkod med hjälp av Cloud Native Buildpacks.

Utlösa aktivitet vid uppdatering av källkod

Utlösa en containeravbildningsbygge eller uppgift i flera steg när kod har utförts, eller när en pull-begäran görs eller uppdateras, till en offentlig eller privat Git-lagringsplats i GitHub eller Azure DevOps. Du kan till exempel konfigurera en bygguppgift med Azure CLI-kommandot az acr task create genom att ange en Git-lagringsplats och eventuellt en gren och Dockerfile. När ditt team uppdaterar kod i lagringsplatsen utlöser en ACR-uppgifter webhook en version av containeravbildningen som definierats i lagringsplatsen.

ACR-uppgifter stöder följande utlösare när du anger en Git-lagringsplatsen som aktivitetens kontext:

Utlösare Aktiverat som standard
Checka in Yes
Pull-begäran No

För att konfigurera en uppdateringsutlösare för källkod måste du ange uppgiften som en personlig åtkomsttoken (PAT) för att ställa in webhooken på den offentliga eller privata GitHub- eller Azure DevOps-lagringsplatsen.

Anteckning

För närvarande ACR-uppgifter inte utlösare för genomförande eller pull-begäran i GitHub Enterprise-lagringsplatsen.

Lär dig hur du utlöser byggen på källkods genomförande i den andra ACR-uppgifter självstudien Automatisera containeravbildningsbyggen med Azure Container Registry-uppgifter.

Automatisera korrigering av operativsystem och ramverk

Kraften i att ACR-uppgifter att verkligen förbättra arbetsflödet för containerbygget kommer från möjligheten att identifiera en uppdatering av en basavbildning. En funktion i de flesta containeravbildningar är en basavbildning en överordnad avbildning som en eller flera programavbildningar baseras på. Basavbildningar innehåller vanligtvis operativsystemet och ibland programramverk.

Du kan konfigurera en ACR-uppgift för att spåra ett beroende till en basavbildning när den skapar en programavbildning. När den uppdaterade basavbildningen skickas till registret eller en basavbildning uppdateras i en offentlig lagringsplatsen, till exempel i Docker Hub, kan ACR-uppgifter automatiskt skapa alla programavbildningar baserat på den. Med den här automatiska identifieringen och återskapande sparar ACR-uppgifter tid och arbete som normalt krävs för att manuellt spåra och uppdatera varje programavbildning som refererar till den uppdaterade basavbildningen.

Läs mer om utlösare för uppdatering av basavbildningar för ACR-uppgifter. Och lär dig hur du utlöser en avbildningsbygge när en basavbildning skickas till ett containerregister i självstudien Automatisera containeravbildningsbyggen när en basavbildning uppdateras i ett Azure-containerregister

Schemalägga en aktivitet

Du kan också schemalägga en aktivitet genom att konfigurera en eller flera timerutlösare när du skapar eller uppdaterar uppgiften. Schemaläggning av en uppgift är användbart för att köra containerarbetsbelastningar enligt ett definierat schema, eller för att köra underhållsåtgärder eller tester på avbildningar som skickas regelbundet till registret. Mer information finns i Köra en ACR-uppgift enligt ett definierat schema.

Uppgifter i flera steg

Uppgifter i flera steg ger stegvis uppgiftsdefinition och körning för att skapa, testa och korrigera containeravbildningar i molnet. Uppgiftssteg som definieras i en YAML-fil anger enskilda bygg- och push-åtgärder för containeravbildningar eller andra artefakter. De kan också definiera körningen av en eller flera container så varje steg använder containern som sin körningsmiljö.

Du kan till exempel skapa en uppgift i flera steg som automatiserar följande:

  1. Skapa en avbildning av ett webbprogram
  2. Köra webbprogramcontainern
  3. Skapa en testavbildning för en webbapp
  4. Kör testcontainern för webbprogram, som utför tester mot den programcontainer som körs
  5. Om testerna är klara skapar du ett arkivpaket för Helm-diagram
  6. Utföra en med helm upgrade hjälp av det nya arkivpaketet för Helm-diagram

Med uppgifter i flera steg kan du dela upp byggnaden, köra och testa en bild i mer sammansättningsbara steg med stöd för beroenden mellan steg. Med uppgifter i flera steg i ACR-uppgifter har du mer detaljerad kontroll över arbetsflöden för bildskapande, testning och korrigering av operativsystem och ramverk.

Lär dig mer om uppgifter i flera steg i Kör uppgifter för att skapa, testa och korrigeraflera steg i ACR-uppgifter .

Kontextplatser

I följande tabell visas exempel på kontextplatser som stöds för ACR-uppgifter:

Kontextplats Beskrivning Exempel
Lokalt filsystem Filer i en katalog i det lokala filsystemet. /home/user/projects/myapp
GitHub-huvudgren Filer i huvudgrenen (eller någon annan standardgren) på en offentlig eller privat GitHub-lagringsplats. https://github.com/gituser/myapp-repo.git
GitHub-gren Specifik gren av en offentlig eller privat GitHub-lagringsplatsen. https://github.com/gituser/myapp-repo.git#mybranch
GitHub-undermapp Filer i en undermapp på en offentlig eller privat GitHub-lagringsplatsen. Exempel som visar en kombination av en specifikation för en gren och undermapp. https://github.com/gituser/myapp-repo.git#mybranch:myfolder
GitHub-genomförande Specifika genomföranden i en offentlig eller privat GitHub-lagringsplatsen. Exempel som visar en kombination av en sha-hash (commit hash) och undermappsspecifikation. https://github.com/gituser/myapp-repo.git#git-commit-hash:myfolder
Azure DevOps-undermapp Filer i en undermapp på en offentlig eller privat Azure-lagringsplatsen. Exempel som visar en kombination av specifikation för gren och undermapp. https://dev.azure.com/user/myproject/_git/myapp-repo#mybranch:myfolder
Fjärr-tarball Filer i ett komprimerat arkiv på en fjärrwebbserver. http://remoteserver/myapp.tar.gz
Artefakt i containerregistret OCI-artefaktfiler på en containerregisterdatabas. oci://myregistry.azurecr.io/myartifact:mytag

Anteckning

När du använder en privat Git-lagringsplatsen som kontext för en uppgift måste du ange en personlig åtkomsttoken (PAT).

Bildplattformar

Som standard ACR-uppgifter avbildningar för Linux-operativsystemet och amd64-arkitekturen. Ange taggen --platform för att skapa Windows-avbildningar eller Linux-avbildningar för andra arkitekturer. Ange operativsystemet och eventuellt en arkitektur som stöds i OS/arkitekturformat (till exempel --platform Linux/arm ). För ARM-arkitekturer kan du välja att ange en variant i OS/arkitektur/variant-format (till exempel --platform Linux/arm64/v8 ):

Operativsystem Arkitektur
Linux amd64
arm
arm64
386
Windows amd64

Visa aktivitetens utdata

Varje aktivitetskörning genererar loggutdata som du kan granska för att avgöra om aktivitetsstegen har körts. När du utlöser en aktivitet manuellt strömmas loggutdata för aktivitetskörningen till konsolen och lagras även för senare hämtning. När en aktivitet utlöses automatiskt, till exempel genom en källkodsavbildning eller en uppdatering av basavbildningen, lagras endast aktivitetsloggar. Visa körningsloggarna i Azure Portal eller använd kommandot az acr task logs.

Läs mer om att visa och hantera aktivitetsloggar.

Nästa steg

När du är redo att automatisera containeravbildningsbyggen och underhåll i molnet kan du gå ACR-uppgifter självstudieserien.

Du kan också installera Docker-tillägget för Visual Studio Code och Azure-kontotillägget för att arbeta med dina Azure-containerregister. Hämta och push-pusha avbildningar till ett Azure-containerregister eller kör ACR-uppgifter i Visual Studio Code.