Bouw en onderhoud van container installatie kopieën automatiseren met ACR-takenAutomate container image builds and maintenance with ACR Tasks

Containers bieden nieuwe niveaus van virtualisatie, het isoleren van afhankelijkheden van toepassingen en ontwikkel aars uit infra structuur en operationele vereisten.Containers provide new levels of virtualization, isolating application and developer dependencies from infrastructure and operational requirements. Wat er nog steeds blijft, is echter de nood zaak om te bepalen hoe deze Application Virtualization wordt beheerd en gepatchd over de levens cyclus van de container.What remains, however, is the need to address how this application virtualization is managed and patched over the container lifecycle.

Wat zijn ACR-taken?What is ACR Tasks?

ACR-taken is een reeks functies in azure container Registry.ACR Tasks is a suite of features within Azure Container Registry. Het bevat een Cloud installatie kopie voor het maken van een container voor platforms , waaronder Linux, Windows en arm, en kan het besturings systeem en Framework-patches voor uw docker-containers automatiseren.It provides cloud-based container image building for platforms including Linux, Windows, and ARM, and can automate OS and framework patching for your Docker containers. ACR-taken breiden de ontwikkelings cyclus "binnenste loop" niet alleen uit naar de Cloud met builds van installatie kopieën op aanvraag, maar biedt ook automatische builds die worden geactiveerd door bron code-updates, updates naar de basis installatie kopie van een container of timers.ACR Tasks not only extends your "inner-loop" development cycle to the cloud with on-demand container image builds, but also enables automated builds triggered by source code updates, updates to a container's base image, or timers. Zo kunt u met de basis installatie-update triggers de werk stroom voor het besturings systeem en toepassings raamwerk automatiseren, waarbij beveiligde omgevingen worden onderhouden en de principes van onveranderlijke containers worden gevolgd.For example, with base image update triggers, you can automate your OS and application framework patching workflow, maintaining secure environments while adhering to the principles of immutable containers.

Taak scenario'sTask scenarios

ACR-taken bieden ondersteuning voor verschillende scenario's voor het maken en onderhouden van container installatie kopieën en andere artefacten.ACR Tasks supports several scenarios to build and maintain container images and other artifacts. Zie de volgende secties in dit artikel voor meer informatie.See the following sections in this article for details.

Elke ACR-taak heeft een gekoppelde broncode context : de locatie van een set bron bestanden die wordt gebruikt om een container installatie kopie of ander artefact te bouwen.Each ACR Task has an associated source code context - the location of a set of source files used to build a container image or other artifact. Voor beelden van contexten zijn een Git-opslag plaats of een lokaal bestands systeem.Example contexts include a Git repository or a local filesystem.

Taken kunnen ook gebruikmaken van variabelen uitvoeren, zodat u taak definities opnieuw kunt gebruiken en tags voor installatie kopieën en artefacten standaardisert.Tasks can also take advantage of run variables, so you can reuse task definitions and standardize tags for images and artifacts.

Snelle taakQuick task

Het proces voor de duur van de binnenste cyclus, het iteratieproces voor het schrijven van code, het ontwikkelen en testen van uw toepassing voordat u een bron beheer uitvoert, is het begin van het beheer van de container levenscyclus.The inner-loop development cycle, the iterative process of writing code, building, and testing your application before committing to source control, is really the beginning of container lifecycle management.

Voordat u uw eerste regel code doorvoert, kunt u met de snelle taak functie van ACR-taken een geïntegreerde ontwikkel ervaring bieden door de build-installatie kopieën van de container te offloaden naar Azure.Before you commit your first line of code, ACR Tasks's quick task feature can provide an integrated development experience by offloading your container image builds to Azure. Met snelle taken kunt u uw geautomatiseerde build-definities controleren en mogelijke problemen ondervangen voordat u uw code doorvoert.With quick tasks, you can verify your automated build definitions and catch potential problems prior to committing your code.

Met de vertrouwde docker build-indeling wordt met de opdracht AZ ACR build in azure cli een context (de set te bouwen bestanden) gemaakt, wordt de ACR-taken verzonden en wordt standaard de ingebouwde installatie kopie naar het REGI ster gepusht na voltooiing.Using the familiar docker build format, the az acr build command in the Azure CLI takes a context (the set of files to build), sends it ACR Tasks and, by default, pushes the built image to its registry upon completion.

Zie voor een inleiding de Snelstartgids voor het maken en uitvoeren van een container installatie kopie in azure container Registry.For an introduction, see the quickstart to build and run a container image in Azure Container Registry.

ACR-taken is ontworpen als een levens cyclus voor containers.ACR Tasks is designed as a container lifecycle primitive. U kunt bijvoorbeeld ACR-taken integreren in uw CI/CD-oplossing.For example, integrate ACR Tasks into your CI/CD solution. Door de opdracht AZ login met een Service-Principaluit te voeren, kan uw CI/cd-oplossing AZ ACR build -opdrachten verzenden om installatie kopieën te starten.By executing az login with a service principal, your CI/CD solution could then issue az acr build commands to kick off image builds.

Informatie over het gebruik van snelle taken in de eerste zelf studie over ACR-taken, bouw container installatie kopieën in de Cloud met Azure container Registry taken.Learn how to use quick tasks in the first ACR Tasks tutorial, Build container images in the cloud with Azure Container Registry Tasks.

Tip

Als u een installatie kopie rechtstreeks vanuit de bron code wilt maken en pushen zonder Dockerfile, levert Azure Container Registry de opdracht AZ ACR Pack build (preview).If you want to build and push an image directly from source code, without a Dockerfile, Azure Container Registry provides the az acr pack build command (preview). Dit hulp programma bouwt en duwt een installatie kopie van de bron code van de toepassing met behulp van de native Buildpacksvan de Cloud.This tool builds and pushes an image from application source code using Cloud Native Buildpacks.

Taak activeren bij het bijwerken van de bron codeTrigger task on source code update

Een taak voor het maken van een container installatie kopie of een taken uit meerdere stappen activeren wanneer de code wordt vastgelegd, of een pull-aanvraag wordt gedaan of bijgewerkt naar een open bare of persoonlijke Git-opslag plaats in GitHub of Azure DevOps.Trigger a container image build or multi-step task when code is committed, or a pull request is made or updated, to a public or private Git repository in GitHub or Azure DevOps. Configureer bijvoorbeeld een build-taak met de Azure CLI-opdracht AZ ACR Task Create door een Git-opslag plaats en optioneel een vertakking en Dockerfile op te geven.For example, configure a build task with the Azure CLI command az acr task create by specifying a Git repository and optionally a branch and Dockerfile. Wanneer uw team code in de opslag plaats bijwerkt, activeert een webhook met ACR-gemaakte taken een build van de container installatie kopie die is gedefinieerd in de opslag plaats.When your team updates code in the repository, an ACR Tasks-created webhook triggers a build of the container image defined in the repo.

ACR-taken bieden ondersteuning voor de volgende triggers wanneer u een Git-opslag plaats instelt als de context van de taak:ACR Tasks supports the following triggers when you set a Git repo as the task's context:

TriggerTrigger Standaard ingeschakeldEnabled by default
DoorvoerenCommit JaYes
Pull-aanvraagPull request NeeNo

Als u een trigger voor het bijwerken van de bron code wilt configureren, moet u de taak een persoonlijk toegangs token (PAT) geven om de webhook in te stellen in de open bare of persoonlijke GitHub of Azure DevOps opslag plaats.To configure a source code update trigger, you need to provide the task a personal access token (PAT) to set the webhook in the public or private GitHub or Azure DevOps repo.

Notitie

Op dit moment bieden ACR-taken geen ondersteuning voor commit-of pull-aanvraag triggers in GitHub Enter prise opslag plaatsen.Currently, ACR Tasks doesn't support commit or pull request triggers in GitHub Enterprise repos.

Meer informatie over het activeren van builds op basis van de bron code in de tweede zelf studie ACR-taken, het automatiseren van container installatie kopieën met Azure container Registry taken.Learn how to trigger builds on source code commit in the second ACR Tasks tutorial, Automate container image builds with Azure Container Registry Tasks.

Reparatie van besturings systemen en Framework automatiserenAutomate OS and framework patching

De kracht van ACR taken om de werk stroom voor het bouwen van containers echt te verbeteren, is van de mogelijkheid om een update naar een basis installatie kopie te detecteren.The power of ACR Tasks to truly enhance your container build workflow comes from its ability to detect an update to a base image. Wanneer de bijgewerkte basis installatie kopie naar het REGI ster wordt gepusht of een basis installatie kopie is bijgewerkt in een open bare opslag plaats, zoals in docker hub, kunnen ACR-taken automatisch eventuele installatie kopieën van toepassingen maken op basis van het bestand.When the updated base image is pushed to your registry, or a base image is updated in a public repo such as in Docker Hub, ACR Tasks can automatically build any application images based on it.

Container installatie kopieën kunnen breed worden gecategoriseerd in basis installatie kopieën en toepassings installatie kopieën.Container images can be broadly categorized into base images and application images. Uw basis installatie kopieën bevatten doorgaans het besturings systeem en toepassings raamwerken waarop uw toepassing is gebouwd, samen met andere aanpassingen.Your base images typically include the operating system and application frameworks upon which your application is built, along with other customizations. Deze basis installatie kopieën zijn normaal gesp roken gebaseerd op open bare upstream-installatie kopieën, bijvoorbeeld: Alpine Linux, Windows, .netof node. js.These base images are themselves typically based on public upstream images, for example: Alpine Linux, Windows, .NET, or Node.js. Diverse installatie kopieën van uw toepassing kunnen een gemeen schappelijke basis installatie kopie delen.Several of your application images might share a common base image.

Wanneer een installatie kopie van een besturings systeem of app-Framework wordt bijgewerkt door de upstream-Maintainer, bijvoorbeeld met een kritieke beveiligings patch voor het besturings systeem, moet u ook uw basis installatie kopieën bijwerken om de essentiële oplossing op te nemen.When an OS or app framework image is updated by the upstream maintainer, for example with a critical OS security patch, you must also update your base images to include the critical fix. Elke toepassings installatie kopie moet vervolgens ook opnieuw worden opgebouwd om deze upstream-oplossingen op te nemen die nu zijn opgenomen in uw basis installatie kopie.Each application image must then also be rebuilt to include these upstream fixes now included in your base image.

Omdat ACR-taken de afhankelijkheden van basis installatie kopieën dynamisch detecteren bij het samen stellen van een container installatie kopie, kan deze detecteert wanneer de basis installatie kopie van de toepassings installatie kopie wordt bijgewerkt.Because ACR Tasks dynamically discovers base image dependencies when it builds a container image, it can detect when an application image's base image is updated. Met één vooraf geconfigureerde Build-taakbouwt ACR taken vervolgens automatisch elke installatie kopie van de toepassing opnieuw op.With one preconfigured build task, ACR Tasks then automatically rebuilds every application image for you. Met deze automatische detectie en het opnieuw samen stellen van ACR-taken bespaart u de tijd en inspanningen die normaal gesp roken nodig zijn voor het hand matig bijhouden en bijwerken van elke toepassings installatie kopie die verwijst naar de bijgewerkte basis installatie kopie.With this automatic detection and rebuilding, ACR Tasks saves you the time and effort normally required to manually track and update each and every application image referencing your updated base image.

Voor installatie kopieën van een Dockerfile houdt een ACR-taak een update van een basis installatie kopie bij wanneer de basis installatie kopie zich op een van de volgende locaties bevindt:For image builds from a Dockerfile, an ACR task tracks a base image update when the base image is in one of the following locations:

  • Hetzelfde Azure container Registry waarin de taak wordt uitgevoerdThe same Azure container registry where the task runs
  • Een ander Azure container registry in dezelfde regioAnother Azure container registry in the same region
  • Een open bare opslag plaats in docker hubA public repo in Docker Hub
  • Een open bare opslag plaats in micro soft Container RegistryA public repo in Microsoft Container Registry

Notitie

  • De trigger voor het bijwerken van de basis installatie kopie is standaard ingeschakeld in een ACR-taak.The base image update trigger is enabled by default in an ACR task.
  • Op dit moment worden ACR-updates voor installatie kopieën van de toepassing (runtime) alleen door de taken bijgehouden.Currently, ACR Tasks only tracks base image updates for application (runtime) images. ACR-taken volgen geen updates van basis afbeeldingen voor tussenliggende (buildtime)-installatie kopieën die worden gebruikt in de Dockerfiles met meerdere fasen.ACR Tasks doesn't track base image updates for intermediate (buildtime) images used in multi-stage Dockerfiles.

Meer informatie over patches voor besturings systemen en Framework in de ACR-zelf studie voor de derde taak voor het automatiseren van installatie kopieën voor de update van de basis installatie kopie met Azure container Registry taken.Learn more about OS and framework patching in the third ACR Tasks tutorial, Automate image builds on base image update with Azure Container Registry Tasks.

Een taak plannenSchedule a task

U kunt een taak optioneel plannen door een of meer Timer triggers in te stellen wanneer u de taak maakt of bijwerkt.Optionally schedule a task by setting up one or more timer triggers when you create or update the task. Het plannen van een taak is handig voor het uitvoeren van container werkbelastingen op een gedefinieerd schema, of het uitvoeren van onderhouds bewerkingen of tests op installatie kopieën die regel matig naar het REGI ster worden gepusht.Scheduling a task is useful for running container workloads on a defined schedule, or running maintenance operations or tests on images pushed regularly to your registry. Zie een ACR-taak uitvoeren volgens een gedefinieerd schemavoor meer informatie.For details, see Run an ACR task on a defined schedule.

Taken met meerdere stappenMulti-step tasks

Taken met meerdere stappen bieden taak definitie en uitvoering op basis van een stap voor het bouwen, testen en bijwerken van container installatie kopieën in de Cloud.Multi-step tasks provide step-based task definition and execution for building, testing, and patching container images in the cloud. Taak stappen die in een yaml-bestand zijn gedefinieerd, geven afzonderlijke compilatie-en push bewerkingen voor container installatie kopieën of andere artefacten.Task steps defined in a YAML file specify individual build and push operations for container images or other artifacts. Ze kunnen ook de uitvoering definiëren van een of meer containers, waarbij elke stap de container als uitvoeringsomgeving gebruikt.They can also define the execution of one or more containers, with each step using the container as its execution environment.

U kunt bijvoorbeeld een taak met meerdere stappen maken waarmee het volgende wordt geautomatiseerd:For example, you can create a multi-step task that automates the following:

  1. Een installatie kopie voor een webtoepassing bouwenBuild a web application image
  2. De Web Application-container uitvoerenRun the web application container
  3. Een test installatie kopie voor een webtoepassing bouwenBuild a web application test image
  4. Voer de test container voor webtoepassingen uit, waarmee tests worden uitgevoerd voor de actieve toepassings containerRun the web application test container, which performs tests against the running application container
  5. Als de tests zijn geslaagd, bouwt u een helm-archief pakket voor grafieken opIf the tests pass, build a Helm chart archive package
  6. Een helm upgrade uitvoeren met het nieuwe helm-archief pakket voor grafiekenPerform a helm upgrade using the new Helm chart archive package

Met taken met meerdere stappen kunt u het bouwen, uitvoeren en testen van een afbeelding in meer samenstel bare stappen splitsen, met ondersteuning voor afhankelijkheden tussen verschillende stappen.Multi-step tasks enable you to split the building, running, and testing of an image into more composable steps, with inter-step dependency support. Met taken met meerdere stappen in ACR-taken hebt u meer gedetailleerde controle over het bouwen, testen en OS-en Framework-patch werk stromen.With multi-step tasks in ACR Tasks, you have more granular control over image building, testing, and OS and framework patching workflows.

Meer informatie over taken in meerdere stappen in de stappen voor het bouwen, testen en patchen van taken uitvoeren in ACR-taken.Learn about multi-step tasks in Run multi-step build, test, and patch tasks in ACR Tasks.

Context locatiesContext locations

De volgende tabel bevat enkele voor beelden van ondersteunde context locaties voor ACR-taken:The following table shows a few examples of supported context locations for ACR Tasks:

Context locatieContext location BeschrijvingDescription VoorbeeldExample
Lokaal bestands systeemLocal filesystem Bestanden in een map op het lokale bestands systeem.Files within a directory on the local filesystem. /home/user/projects/myapp
Hoofd vertakking GitHubGitHub master branch Bestanden in de hoofd vertakking (of een andere standaard) van een open bare of persoonlijke GitHub-opslag plaats.Files within the master (or other default) branch of a public or private GitHub repository. https://github.com/gituser/myapp-repo.git
GitHub-vertakkingGitHub branch Specifieke vertakking van een open bare of particuliere GitHub-opslag plaats.Specific branch of a public or private GitHub repo. https://github.com/gituser/myapp-repo.git#mybranch
Submap GitHubGitHub subfolder Bestanden in een submap van een open bare of persoonlijke GitHub-opslag plaats.Files within a subfolder in a public or private GitHub repo. Voor beeld wordt een combi natie van een vertakking en submap opgegeven.Example shows combination of a branch and subfolder specification. https://github.com/gituser/myapp-repo.git#mybranch:myfolder
GitHub door voerenGitHub commit Specifieke door Voer in een open bare of persoonlijke GitHub-opslag plaats.Specific commit in a public or private GitHub repo. Voor beeld toont een combi natie van een commit hash (SHA) en een specificatie van een submap.Example shows combination of a commit hash (SHA) and subfolder specification. https://github.com/gituser/myapp-repo.git#git-commit-hash:myfolder
Submap voor Azure DevOpsAzure DevOps subfolder Bestanden in een submap van een open bare of persoonlijke Azure-opslag plaats.Files within a subfolder in a public or private Azure repo. Voor beeld wordt een combi natie van een specificatie van branch en submap weer gegeven.Example shows combination of branch and subfolder specification. https://dev.azure.com/user/myproject/_git/myapp-repo#mybranch:myfolder
Externe tarballRemote tarball Bestanden in een gecomprimeerd archief op een externe webserver.Files in a compressed archive on a remote webserver. http://remoteserver/myapp.tar.gz

Notitie

Wanneer u een privé Git-opslag plaats als context voor een taak gebruikt, moet u een persoonlijk toegangs token (PAT) opgeven.When using a private Git repo as a context for a task, you need to provide a personal access token (PAT).

Afbeeldings platformsImage platforms

Standaard bouwt ACR-taken installatie kopieën voor het Linux-besturings systeem en de amd64-architectuur.By default, ACR Tasks builds images for the Linux OS and the amd64 architecture. Geef het --platform label op om Windows-installatie kopieën of Linux-installatie kopieën voor andere architecturen te maken.Specify the --platform tag to build Windows images or Linux images for other architectures. Geef het besturings systeem en eventueel een ondersteunde architectuur op in de indeling van het besturings systeem/de architectuur (bijvoorbeeld --platform Linux/arm).Specify the OS and optionally a supported architecture in OS/architecture format (for example, --platform Linux/arm). Voor ARM-architecturen geeft u optioneel een variant op in de indeling OS/Architecture/variant (bijvoorbeeld --platform Linux/arm64/v8):For ARM architectures, optionally specify a variant in OS/architecture/variant format (for example, --platform Linux/arm64/v8):

BesturingssysteemOS ArchitectuurArchitecture
LinuxLinux amd64amd64
scherparm
arm64arm64
386386
WindowsWindows amd64amd64

Taak logboeken weer gevenView task logs

Elke taak wordt uitgevoerd, genereert een logboek uitvoer die u kunt inspecteren om te bepalen of de taak stappen zijn uitgevoerd.Each task run generates log output that you can inspect to determine whether the task steps ran successfully. Als u de opdracht AZ ACR build, AZ ACR runof AZ ACR Task run gebruikt om de taak te activeren, wordt de logboek uitvoer voor de uitvoering van de taak naar de console gestreamd en ook opgeslagen om later op te halen.If you use the az acr build, az acr run, or az acr task run command to trigger the task, log output for the task run is streamed to the console and also stored for later retrieval. Wanneer een taak automatisch wordt geactiveerd, bijvoorbeeld door het door voeren van een bron code of een update van een basis installatie kopie, worden de taak Logboeken alleen opgeslagen.When a task is automatically triggered, for example by a source code commit or a base image update, task logs are only stored. Bekijk de logboeken voor een taak die wordt uitgevoerd in de Azure Portal, of gebruik de opdracht AZ ACR taak logs .View the logs for a task run in the Azure portal, or use the az acr task logs command.

Gegevens en logboeken voor taak uitvoeringen in een REGI ster worden standaard 30 dagen bewaard en vervolgens automatisch opgeschoond.By default, data and logs for task runs in a registry are retained for 30 days and then automatically purged. Als u de gegevens voor een taak uitvoering wilt archiveren, schakelt u archiveren in met de opdracht AZ ACR Task update-run .If you want to archive the data for a task run, enable archiving using the az acr task update-run command. In het volgende voor beeld wordt het archiveren voor de taak cf11 in REGI ster myregistryingeschakeld.The following example enables archiving for the task run cf11 in registry myregistry.

az acr task update-run --registry myregistry --run-id cf11 --no-archive false

Volgende stappenNext steps

Als u klaar bent voor het automatiseren van container installatie kopieën en onderhoud in de Cloud, raadpleegt u de reeks zelfstudies over ACR-taken.When you're ready to automate container image builds and maintenance in the cloud, check out the ACR Tasks tutorial series.

Installeer eventueel de docker-extensie voor Visual Studio code en de Azure-account extensie om met uw Azure-container registers te werken.Optionally install the Docker Extension for Visual Studio Code and the Azure Account extension to work with your Azure container registries. Pull-en push-installatie kopieën naar een Azure container Registry, of voer ACR-taken uit, allemaal in Visual Studio code.Pull and push images to an Azure container registry, or run ACR Tasks, all within Visual Studio Code.