Builds en onderhoud van containerinstallatiekopieën automatiseren met ACR Tasks

Containers bieden nieuwe niveaus van virtualisatie, het isoleren van toepassings- en ontwikkelaarsafhankelijkheden van infrastructuur- en operationele vereisten. Wat er echter overblijft, is de noodzaak om aan te pakken hoe deze toepassingsvirtualisatie wordt beheerd en gepatcht tijdens de levenscyclus van de container.

Wat is ACR Tasks?

ACR Tasks is een reeks functies binnen Azure Container Registry. Het biedt het bouwen van containerinstallatiekopieën in de cloud voor platforms, waaronder Linux, Windows en ARM, en kan patches voor het besturingssysteem en framework voor uw Docker-containers automatiseren. ACR Tasks breidt niet alleen uw 'inner-loop'-ontwikkelingscyclus uit naar de cloud met builds van containerinstallatiekopieën op aanvraag, maar maakt ook geautomatiseerde builds mogelijk die worden geactiveerd door broncode-updates, updates voor de basisinstallatiekopieën van een container of timers. Met updatetriggers voor basisinstallatiekopieën kunt u bijvoorbeeld de patchwerkstroom voor het besturingssysteem en het toepassingsframework automatiseren, waarbij veilige omgevingen worden onderhouden terwijl u voldoet aan de principes van onveranderbare containers.

Taakscenario's

ACR Tasks ondersteunt verschillende scenario's voor het bouwen en onderhouden van containerinstallatiekopieën en andere artefacten. Zie de volgende secties in dit artikel voor meer informatie.

Elke ACR-taak heeft een bijbehorende broncodecontext : de locatie van een set bronbestanden die worden gebruikt om een containerinstallatiekopieën of een ander artefact te bouwen. Voorbeeldcontexten zijn een Git-opslagplaats of een lokaal bestandssysteem.

Taken kunnen ook profiteren van uitvoeringsvariabelen, zodat u taakdefinities opnieuw kunt gebruiken en tags kunt standaardiseren voor afbeeldingen en artefacten.

Snelle taak

De interne lusontwikkelingscyclus, het iteratieve proces van het schrijven van code, het bouwen en testen van uw toepassing voordat u zich vastlegt aan broncodebeheer, is eigenlijk het begin van het levenscyclusbeheer van containers.

Voordat u uw eerste regel code doorvoert, kan de functie voor snelle taken van ACR Tasks een geïntegreerde ontwikkelervaring bieden door de builds van uw containerinstallatiekopieën naar Azure te offloaden. Met snelle taken kunt u uw geautomatiseerde builddefinities controleren en potentiële problemen ondervangen voordat u uw code doorvoert.

Met behulp van de vertrouwde docker build indeling heeft de opdracht az acr build in de Azure CLI een context (de set bestanden die moet worden gebouwd), verzendt deze naar ACR Tasks en pusht de ingebouwde installatiekopie standaard naar het register na voltooiing.

Zie de quickstart voor het bouwen en uitvoeren van een containerinstallatiekopieën in Azure Container Registry voor een inleiding.

ACR Tasks is ontworpen als een primitieve levenscyclus van containers. Integreer bijvoorbeeld ACR Tasks in uw CI/CD-oplossing. Door az login uit te voeren met een service-principal, kan uw CI/CD-oplossing vervolgens az acr build-opdrachten uitgeven om builds van installatiekopieën te starten.

Leer hoe u snelle taken gebruikt in de eerste zelfstudie over ACR Tasks, containerinstallatiekopieën bouwen in de cloud met Azure Container Registry Tasks.

Tip

Als u rechtstreeks vanuit de broncode een installatiekopieën wilt bouwen en pushen, zonder dockerfile, Azure Container Registry de opdracht az acr pack build (preview). Met dit hulpprogramma wordt een installatiekopieën uit de broncode van de toepassing gebouwd en gepusht met behulp van Cloud Native Buildpacks.

Taak activeren bij broncode-update

Trigger a container image build or multi-step task when code is doorgevoerd, of een pull-aanvraag wordt gedaan of bijgewerkt, naar een openbare of persoonlijke Git-opslagplaats in GitHub of Azure DevOps. Configureer bijvoorbeeld een build-taak met de Azure CLI-opdracht az acr task create door een Git-opslagplaats en eventueel een vertakking en Dockerfile op te geven. Wanneer uw team code in de opslagplaats bijwerkt, activeert een door ACR Tasks gemaakte webhook een build van de containerinstallatiekopieën die in de opslagplaats zijn gedefinieerd.

ACR Tasks ondersteunt de volgende triggers wanneer u een Git-opslagplaats instelt als context van de taak:

Trigger Standaard ingeschakeld
Doorvoeren Yes
Pull-aanvraag No

Notitie

Op dit moment biedt ACR-taken geen ondersteuning voor de aanvraagtriggers commit of pull in GitHub Enterprise-opslagplaatsen.

Meer informatie over het activeren van builds op het doorvoeren van broncode in de tweede zelfstudie over ACR Tasks, het automatiseren van builds van containerinstallatiekopieën met Azure Container Registry Tasks.

Persoonlijk toegangstoken

Als u een trigger voor het bijwerken van broncode wilt configureren, moet u de taak een persoonlijk toegangstoken (PAT) opgeven om de webhook in te stellen in de openbare of persoonlijke GitHub of azure DevOps-opslagplaats. Vereiste bereiken voor de PAT zijn als volgt:

Type opslagplaats GitHub DevOps
Openbare opslagplaats opslagplaats:status
public_repo
Code (lezen)
Privéopslagplaats opslagplaats (volledig beheer) Code (lezen)

Zie de documentatie van GitHub of Azure DevOps om een PAT te maken.

Patches voor het besturingssysteem en framework automatiseren

De kracht van ACR Tasks om uw containerbuildwerkstroom echt te verbeteren, is afkomstig van de mogelijkheid om een update naar een basisinstallatiekopieën te detecteren. Een functie van de meeste containerinstallatiekopieën is een basisinstallatiekopieën een bovenliggende installatiekopieën waarop een of meer toepassingsinstallatiekopieën zijn gebaseerd. Basisinstallatiekopieën bevatten meestal het besturingssysteem en soms toepassingsframeworks.

U kunt een ACR-taak instellen om een afhankelijkheid van een basisinstallatiekopieën bij te houden wanneer er een toepassingsinstallatiekopieën worden gebouwd. Wanneer de bijgewerkte basisinstallatiekopieën naar uw register worden gepusht of een basisinstallatiekopieën worden bijgewerkt in een openbare opslagplaats, zoals in Docker Hub, kunnen ACR Tasks automatisch toepassingsinstallatiekopieën maken op basis van deze installatiekopieën. Met deze automatische detectie en herbouw bespaart ACR Tasks u de tijd en moeite die normaal gesproken nodig is om elke toepassingsinstallatiekopieën die verwijzen naar uw bijgewerkte basisinstallatiekopieën handmatig bij te houden en bij te werken.

Meer informatie over triggers voor het bijwerken van basisinstallatiekopieën voor ACR Tasks. En leer hoe u een installatiekopieënbuild activeert wanneer een basisinstallatiekopieën naar een containerregister wordt gepusht in de zelfstudie Containerinstallatiekopieën automatiseren wanneer een basisinstallatiekopieën worden bijgewerkt in een Azure-containerregister

Een taak plannen

U kunt desgewenst een taak plannen door een of meer timertriggers in te stellen wanneer u de taak maakt of bijwerkt. Het plannen van een taak is handig voor het uitvoeren van containerworkloads volgens een gedefinieerd schema, of het uitvoeren van onderhoudsbewerkingen of tests op installatiekopieën die regelmatig naar uw register worden gepusht. Zie Een ACR-taak uitvoeren volgens een gedefinieerd schema voor meer informatie.

Taken met meerdere stappen

Taken met meerdere stappen biedt een stapsgewijze taakdefinitie en -uitvoering voor het ontwikkelen, testen en patchen van containerinstallatiekopieën in de cloud. Taakstappen die zijn gedefinieerd in een YAML-bestand , geven afzonderlijke build- en pushbewerkingen op voor containerinstallatiekopieën of andere artefacten. Ze kunnen ook de uitvoering definiëren van een of meer containers, waarbij elke stap de container als uitvoeringsomgeving gebruikt.

U kunt bijvoorbeeld een taak met meerdere stappen maken waarmee het volgende wordt geautomatiseerd:

  1. Een webtoepassingsinstallatiekopieën bouwen
  2. De webtoepassingscontainer uitvoeren
  3. Een testinstallatiekopieën voor webtoepassingen bouwen
  4. Voer de testcontainer van de webtoepassing uit, waarmee tests worden uitgevoerd op de actieve toepassingscontainer
  5. Als de tests slagen, bouwt u een Helm-grafiekarchiefpakket
  6. helm upgrade Een nieuw Helm-grafiekarchiefpakket gebruiken

Met taken met meerdere stappen kunt u het bouwen, uitvoeren en testen van een installatiekopieën splitsen in meer opstelbare stappen, met ondersteuning voor afhankelijkheid tussen stappen. Met taken met meerdere stappen in ACR Tasks hebt u gedetailleerdere controle over het bouwen, testen en uitvoeren van patches voor het besturingssysteem en framework.

Meer informatie over taken met meerdere stappen in Het uitvoeren van build-, test- en patchtaken in ACR Tasks.

Contextlocaties

In de volgende tabel ziet u voorbeelden van ondersteunde contextlocaties voor ACR Tasks:

Contextlocatie Beschrijving Voorbeeld
Lokaal bestandssysteem Bestanden in een map in het lokale bestandssysteem. /home/user/projects/myapp
GitHub hoofdbranch Bestanden in de hoofdbranch (of een andere standaard)vertakking van een openbare of persoonlijke GitHub opslagplaats. https://github.com/gituser/myapp-repo.git
GitHub vertakking Specifieke vertakking van een openbare of persoonlijke GitHub opslagplaats. https://github.com/gituser/myapp-repo.git#mybranch
GitHub submap Bestanden in een submap in een openbare of persoonlijke GitHub opslagplaats. Voorbeeld toont een combinatie van een vertakkings- en submapspecificatie. https://github.com/gituser/myapp-repo.git#mybranch:myfolder
GitHub doorvoeren Specifieke doorvoer in een openbare of persoonlijke GitHub opslagplaats. Voorbeeld toont een combinatie van een commit-hash (SHA) en submapspecificatie. https://github.com/gituser/myapp-repo.git#git-commit-hash:myfolder
Azure DevOps-submap Bestanden in een submap in een openbare of persoonlijke Azure-opslagplaats. Voorbeeld toont een combinatie van vertakkings- en submapspecificatie. https://dev.azure.com/user/myproject/_git/myapp-repo#mybranch:myfolder
Externe tarball Bestanden in een gecomprimeerd archief op een externe webserver. http://remoteserver/myapp.tar.gz
Artefact in containerregister OCI-artefactbestanden in een containerregisteropslagplaats. oci://myregistry.azurecr.io/myartifact:mytag

Notitie

Wanneer u een Git-opslagplaats gebruikt als context voor een taak die wordt geactiveerd door een broncode-update, moet u een persoonlijk toegangstoken (PAT) opgeven.

Afbeeldingsplatformen

ACR Tasks bouwt standaard installatiekopieën voor het Linux-besturingssysteem en de amd64-architectuur. Geef de tag op voor het --platform bouwen van Windows installatiekopieën of Linux-installatiekopieën voor andere architecturen. Geef het besturingssysteem en eventueel een ondersteunde architectuur op in de indeling van het besturingssysteem/de architectuur (bijvoorbeeld --platform Linux/arm). Geef voor ARM-architecturen desgewenst een variant op in os-/architectuur-/variantindeling (bijvoorbeeld --platform Linux/arm64/v8):

Besturingssysteem Architectuur
Linux amd64
arm
arm64
386
Windows amd64

Taakuitvoer weergeven

Elke taakuitvoering genereert logboekuitvoer die u kunt controleren om te bepalen of de taakstappen zijn uitgevoerd. Wanneer u een taak handmatig activeert, wordt logboekuitvoer voor de taakuitvoering gestreamd naar de console en ook opgeslagen voor later ophalen. Wanneer een taak automatisch wordt geactiveerd, bijvoorbeeld door het doorvoeren van broncode of een update van een basisinstallatiekopieën, worden taaklogboeken alleen opgeslagen. Bekijk de uitvoeringslogboeken in de Azure Portal of gebruik de opdracht az acr task logs.

Meer informatie over het weergeven en beheren van taaklogboeken.

Volgende stappen

Als u klaar bent om builds en onderhoud van containerinstallatiekopieën in de cloud te automatiseren, bekijkt u de reeks zelfstudies over ACR Tasks.

Installeer eventueel de Docker-extensie voor Visual Studio-code en de Azure-accountextensie om te werken met uw Azure-containerregisters. Pull en push installatiekopieën naar een Azure-containerregister of voer ACR-taken uit, allemaal in Visual Studio-code.