Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Containrar ger nya nivåer av virtualisering genom att isolera program- och utvecklarberoenden från infrastruktur- och driftskrav. Det som återstår är behovet av att åtgärda hur den här programvirtualiseringen hanteras och korrigeras under containerns livscykel.
Azure Container Registry-uppgifter är en uppsättning funktioner som:
- Tillhandahålla molnbaserad containeravbildningsbyggnad för plattformar som Linux, Windows och ARM.
- Utöka de tidiga delarna av en programutvecklingscykel till molnet med containeravbildningsversioner på begäran.
- Aktivera automatiserade versioner som utlöses av källkodsuppdateringar, uppdateringar av en containers basavbildning eller timers.
Med utlösare för uppdateringar av en basavbildning kan du till exempel automatisera os- och ramverkskorrigeringar för dina Docker-containrar. Dessa utlösare kan hjälpa dig att upprätthålla säkra miljöer samtidigt som du följer principerna för oföränderliga containrar.
Viktigt!
Azure Container Registry-aktivitetskörningar pausas tillfälligt från kostnadsfria Azure-krediter. Den här pausen kan påverka befintliga aktivitetskörningar. Om du stöter på problem öppnar du ett supportärende för vårt team för att ge ytterligare vägledning.
Varning
Observera att all information som tillhandahålls på kommandoraden eller som en del av en URI kan loggas som en del av diagnostikspårningen i Azure Container Registry (ACR). Detta omfattar känsliga data som autentiseringsuppgifter, personliga GitHub-åtkomsttoken och annan säker information. Var försiktig för att förhindra eventuella säkerhetsrisker, det är viktigt att undvika att inkludera känslig information i kommandorader eller URI:er som är föremål för diagnostisk loggning.
Aktivitetsscenarier
Azure Container Registry-uppgifter stöder flera scenarier för att skapa och underhålla containeravbildningar och andra artefakter. I den här artikeln beskrivs snabbuppgifter, automatiskt utlösta uppgifter och uppgifter i flera steg.
Varje uppgift har en associerad källkodskontext, som är platsen för källfiler som används för att skapa en containeravbildning eller annan artefakt. Exempelkontexter är en Git-lagringsplats och ett lokalt filsystem.
Aktiviteter kan också dra nytta av körningsvariabler, så att du kan återanvända uppgiftsdefinitioner och standardisera taggar för bilder och artefakter.
Snabbuppgifter
Utvecklingscykeln för inre loopar är den iterativa processen att skriva kod, skapa och testa ditt program innan du förbinder dig till källkontroll. Det är verkligen början på livscykelhantering för containrar.
Snabbaktivitetsfunktionen i Azure Container Registry-uppgifter kan ge en integrerad utvecklingsupplevelse genom att avlasta dina containeravbildningsversioner till Azure. Du kan skapa och push-överföra en enda containeravbildning till ett containerregister på begäran i Azure utan att behöva en lokal Docker Engine-installation. Tänk docker build
i docker push
molnet. Med snabba åtgärder kan du verifiera dina automatiserade byggdefinitioner och identifiera potentiella problem innan du checkar in koden.
Genom att använda det välbekanta formatet docker build
tar kommandot az acr build i Azure CLI en kontext. Kommandot skickar sedan kontexten till Azure Container Registry och (som standard) skickar den skapade avbildningen till registret när den är klar.
Azure Container Registry-uppgifter är utformade som en primitiv containerlivscykel. Till exempel kan du integrera Azure Container Registry-uppgifter i din CI/CD-lösning (kontinuerlig integration och kontinuerlig leverans). Om du kör az login med en tjänsteprincipal kan din CI/CD-lösning sedan utfärda az acr build-kommandon för att påbörja byggandet av avbilder.
Information om hur du använder snabbuppgifter finns i snabbstarten och självstudien för att skapa och distribuera containeravbildningar med hjälp av Azure Container Registry-uppgifter.
Tips
Om du vill skapa och pusha en avbildning direkt från källkoden, utan en Dockerfile, tillhandahåller Azure Container Registry kommandot az acr pack build (förhandsversion). Det här verktyget bygger och pushar en bild från applikationens källkod med hjälp av Cloud Native Buildpacks.
Automatiskt utlösta uppgifter
Aktivera en eller flera utlösare för att skapa en avbildning.
Utlös en uppgift vid en uppdatering av källkoden
Du kan utlösa byggande av containeravbildning eller en flertrinsuppgift när kod har begåtts eller en pull-begäran görs eller uppdateras till ett offentligt eller privat Git-repository i GitHub eller Azure DevOps. Konfigurera till exempel 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 webhook skapat i Azure Container Registry en build av containeravbildningen som definierats i repo:t.
Azure Container Registry-uppgifter stöder följande utlösare när du anger en Git-lagringsplats som en aktivitets kontext:
Utlösare | Aktiverad som standard |
---|---|
Begå | Ja |
Förfrågan om sammanslagning | Nej |
Kommentar
För närvarande stöder Inte Azure Container Registry-uppgifter utlösare för incheckning eller pull-begäran i GitHub Enterprise-lagringsplatser.
Information om hur du utlöser byggjobben vid källkodskommitteringar finns i Automatisera byggen av containeravbildningar med Azure Container Registry-uppgifter.
Personlig åtkomsttoken
För att konfigurera en utlösare för källkodsuppdateringar måste du tillhandahålla uppgiften en personlig åtkomsttoken för att ange webhooken på den offentliga eller privata GitHub- eller Azure DevOps-lagringsplatsen. Nödvändiga omfång för den personliga åtkomsttoken är följande:
Lagringsplatstyp | GitHub | Azure DevOps |
---|---|---|
Offentligt arkiv | repo:status offentligt arkiv |
Kod (läs mer) |
Privat lagringsplats | förvaringsplats (fullständig kontroll) | Kod (Läs) |
Information om hur du skapar en personlig åtkomsttoken finns i GitHub - eller Azure DevOps-dokumentationen .
Automatisera korrigering av operativsystem och ramverk
Kraften i Azure Container Registry-uppgifter för att förbättra ditt arbetsflöde för containerbygge kommer från deras möjlighet att identifiera en uppdatering till en basavbildning. En basbild är en funktion i de flesta containerbilder. Det är en överordnad bild som en eller flera programbilder baseras på. Basavbildningar innehåller vanligtvis operativsystemet och ibland programramverk.
Du kan konfigurera en Azure Container Registry-uppgift för att spåra ett beroende av en basavbildning när den skapar en programavbildning. När den uppdaterade basavbildningen skickas till registret eller om en basavbildning uppdateras på en offentlig lagringsplats, till exempel i Docker Hub, kan Azure Container Registry-uppgifter automatiskt skapa programavbildningar baserat på den. Med denna automatiska identifiering och återuppbyggnad sparar Azure Container Registry-processer tid och ansträngning som normalt krävs för att manuellt spåra och uppdatera varje applikationsbild som hänvisar till din uppdaterade basbild.
Mer information finns i Om basavbildningsuppdateringar för Azure Container Registry-uppgifter och Handledning: Automatisera containeravbildningsbyggen när en basbild uppdateras i ett Azure-containerregister.
Schemalägga en aktivitet
Du kan schemalägga en aktivitet genom att konfigurera en eller flera timerutlösare när du skapar eller uppdaterar aktiviteten. Schemaläggning av en uppgift är användbart för att köra containerlast enligt ett definierat schema, eller köra underhållsåtgärder eller tester på bilder som laddas upp regelbundet till ditt register. Mer information finns i Köra en Azure Container Registry-uppgift enligt ett definierat schema.
Uppgifter i flera steg
Utöka genererings- och push-funktionen för en avbildning för Azure Container Registry-uppgifter med arbetsflöden i flera steg som baseras på flera containrar.
Med uppgifter med flera steg får du stegbaserad uppgiftsdefinition och utförande för att skapa, testa och patcha 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 steg:
- Skapa en webbappsbild.
- Kör webbprogramcontainern.
- Skapa en testbild för webbprogram.
- Kör testcontainern för webbprogram, som utför tester mot den programcontainer som körs.
- Om testerna godkänns skapar du ett Helm-diagramarkivpaket.
- Utför en
helm upgrade
uppgift med hjälp av det nya Helm-diagramarkivpaketet.
Med flerstegsuppgifter kan du dela upp byggandet, körningen och testningen av en avbild i mer modulära steg, med stöd för beroenden mellan stegen. Med flerstegsuppgifter i Azure Container Registry-uppgifter har du mer detaljerad kontroll över arbetsflöden för bildskapande, testning och korrigering av operativsystem och ramverk.
Läs mer om att köra bygg-, test- och korrigeringsuppgifter i Azure Container Registry-uppgifter i flera steg.
Kontextplatser
I följande tabell visas exempel på kontextplatser som stöds för Azure Container Registry-uppgifter:
Kontextplats | beskrivning | Exempel |
---|---|---|
Ett lokalt filsystem | Filer i en katalog i det lokala filsystemet. | /home/user/projects/myapp |
GitHub-huvudgren | Filer inom huvudgrenen (eller annan standard) för en offentlig eller privat GitHub-lagringsplats. | https://github.com/gituser/myapp-repo.git |
GitHub-gren | Specifik gren av en offentlig eller privat GitHub-lagringsplats. | https://github.com/gituser/myapp-repo.git#mybranch |
GitHubundermapp | Filer i en undermapp på en offentlig eller privat GitHub-lagringsplats. Exemplet visar en kombination av en gren- och undermappsspecifikation. | https://github.com/gituser/myapp-repo.git#mybranch:myfolder |
GitHub-commit | Specifik incheckning i en offentlig eller privat GitHub-lagringsplats. Exemplet visar en kombination av en commithash (SHA) 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-lagringsplats. Exemplet visar en kombination av förgrenings- och undermappsspecifikation. | https://dev.azure.com/user/myproject/_git/myapp-repo#mybranch:myfolder |
Fjärrtarball | Filer i ett komprimerat arkiv på en fjärrwebbserver. | http://remoteserver/myapp.tar.gz |
Artefakt i containerregistret | OCI-artefaktfiler i en containerregisterlagringsplats. | oci://myregistry.azurecr.io/myartifact:mytag |
Kommentar
När du använder en Git-lagringsplats som kontext för en uppgift som utlöses av en källkodsuppdatering måste du ange en personlig åtkomsttoken.
Bildplattformar
Som standard skapar Azure Container Registry-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 ange en variant i OS/arkitektur/variantformat (till exempel --platform Linux/arm64/v8
).
OS | Arkitektur |
---|---|
Linux | AMD64 ARM ARM64 386 |
Windows | AMD64 |
Aktivitetsutdata
Varje aktivitetskörning genererar loggutdata som du kan kontrollera 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 för senare hämtning. När en aktivitet utlöses automatiskt (till exempel av en källkodsincheckning eller en basavbildningsuppdatering) 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.
Relaterat innehåll
När du är redo att automatisera byggen och underhåll av containeravbildningar i molnet kan du läsa Självstudie: Skapa och distribuera containeravbildningar i molnet med Azure Container Registry-uppgifter.
Du kan också lära dig mer om Docker-tillägget och Azure-kontotillägget för Visual Studio Code. Du kan använda dessa tillägg för att hämta avbildningar från ett containerregister, skicka avbildningar till ett containerregister eller köra Azure Container Registry-uppgifter, allt i Visual Studio Code.