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 nog steeds overblijft, is de noodzaak om te bepalen hoe deze toepassingsvirtualisatie wordt beheerd en over de levenscyclus van de container wordt gepatcht.

Wat is ACR Tasks?

ACR Tasks is een suite met functies in Azure Container Registry. Het biedt cloudgebaseerde containerinstallatiekopieën bouwen voor platforms, waaronder Linux, Windows en ARM, en kan patches voor het besturingssysteem en framework automatiseren voor uw Docker-containers. ACR Tasks breidt niet alleen de ontwikkelingscyclus 'inner-loop' uit naar de cloud met builds van containerinstallatiekopieën op aanvraag, maar maakt ook geautomatiseerde builds mogelijk die worden geactiveerd door broncode-updates, updates van 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.

[! BELANGRIJK] ACR onderbroken ACR Tasks wordt tijdelijk onderbroken vanuit gratis Azure-tegoed. Dit kan van invloed zijn op bestaande takenuitvoeringen. Als u problemen ondervindt, opent u een ondersteuningsaanvraag voor ons team om aanvullende richtlijnen te bieden. Houd er rekening mee dat bestaande klanten niet worden beïnvloed door deze pauze. We zullen hier onze documentatiemelding bijwerken wanneer de pauze wordt opgeheven.

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 gekoppelde broncodecontext : de locatie van een set bronbestanden die worden gebruikt voor het bouwen van een containerinstallatiekopieën of een ander artefact. Voorbeelden van contexten 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 voor het schrijven van code, het bouwen en testen van uw toepassing voordat u zich doorvoert voor broncodebeheer, is eigenlijk het begin van het levenscyclusbeheer van containers.

Voordat u uw eerste regel code doorvoert, kan de snelle taakfunctie 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 moeten worden gebouwd), deze naar ACR Tasks verzonden en wordt de ingebouwde installatiekopie standaard naar het register gepusht 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. Als u az login uitvoert met een service-principal, kan uw CI/CD-oplossing vervolgens az acr build-opdrachten uitgeven om installatiekopieën te starten.

Meer informatie over het gebruik van snelle taken in de eerste ACR Tasks-zelfstudie: 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, biedt Azure Container Registry de opdracht az acr pack build (preview). Met dit hulpprogramma bouwt en pusht u een installatiekopieën uit de broncode van de toepassing met behulp van Cloud Native Buildpacks.

Taak activeren bij het bijwerken van broncode

Activeer een build- of multistapstaak voor een containerinstallatiekopie wanneer code wordt 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:

Activator Standaard ingeschakeld
Doorvoeren Ja
Pull-aanvraag Nr.

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)

Als u een PAT wilt maken, raadpleegt u de Documentatie voor GitHub of Azure DevOps .

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, een basisinstallatiekopieën is een bovenliggende installatiekopieën waarop een of meer toepassingsinstallatiekopieën zijn gebaseerd. Basisinstallatiekopieën bevatten doorgaans het besturingssysteem en soms toepassingsframeworks.

U kunt een ACR-taak instellen om een afhankelijkheid van een basisinstallatiekopieën bij te houden wanneer 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 installatiekopieën van toepassingen bouwen op basis van deze installatiekopieën. Met deze automatische detectie en herbouwing 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 updatetriggers voor 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 Builds van 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 testafbeelding voor een webtoepassing bouwen
  4. Voer de testcontainer van de webtoepassing uit, die tests uitvoert op basis van de actieve toepassingscontainer
  5. Als de tests zijn geslaagd, bouwt u een Helm-grafiekarchiefpakket
  6. helm upgrade Een nieuw Helm-grafiekarchiefpakket gebruiken

Met taken met meerdere stappen kunt u het gebouw splitsen, uitvoeren en testen van een installatiekopieën in meer composeerbare stappen, met ondersteuning voor afhankelijkheden tussen stappen. Met taken met meerdere stappen in ACR Tasks hebt u gedetailleerdere controle over het bouwen, testen van installatiekopieën en besturingssysteem- en frameworkpatchingwerkstromen.

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 standaardbranch) 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 van een combinatie van een vertakking en submapspecificatie. https://github.com/gituser/myapp-repo.git#mybranch:myfolder
GitHub-doorvoer Specifieke doorvoer in een openbare of persoonlijke GitHub-opslagplaats. Voorbeeld toont een combinatie van een doorvoerhash (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 van een combinatie van specificatie van vertakking en submap. 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 op en eventueel een ondersteunde architectuur in de indeling os/architectuur (bijvoorbeeld --platform Linux/arm). Geef voor ARM-architecturen desgewenst een variant op in de indeling os/architectuur/variant (bijvoorbeeld --platform Linux/arm64/v8):

Besturingssysteem Architectuur
Linux amd64
Arm
arm64
386
Vensters 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 een broncodedoorvoering of een update van een basisinstallatiekopieën, worden taaklogboeken alleen opgeslagen. Bekijk de uitvoeringslogboeken in Azure Portal of gebruik de opdracht az acr task logs .

Meer informatie over het weergeven en beheren van taaklogboeken.

Volgende stappen

Wanneer u klaar bent om builds en onderhoud van containerinstallatiekopieën in de cloud te automatiseren, bekijkt u de zelfstudiereeks 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.