A tárolók rendszerképének fejlesztése és karbantartása ACR-feladatokkalAutomate container image builds and maintenance with ACR Tasks

A tárolók új virtualizációs szinteket biztosítanak, az alkalmazások és a fejlesztői függőségek elkülönítését az infrastruktúra és az üzemeltetési követelmények alapján.Containers provide new levels of virtualization, isolating application and developer dependencies from infrastructure and operational requirements. A továbbra is szükség van arra, hogy az alkalmazás virtualizálása hogyan legyen kezelve, és hogyan történik a tároló életciklusa.What remains, however, is the need to address how this application virtualization is managed and patched over the container lifecycle.

Mi az az ACR-feladat?What is ACR Tasks?

Az ACR-feladatok a Azure Container Registryon belüli szolgáltatások egyik csomagja.ACR Tasks is a suite of features within Azure Container Registry. Felhőalapú tároló-rendszerképeket kínál a platformok, például a Linux, a Windows és az ARM platformokhoz , és automatizálja az operációs rendszer és a keretrendszer javítását a Docker-tárolók számára.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. Az ACR-feladatok nem csupán a "belső hurkos" fejlesztési ciklust bővítik a felhőre az igény szerinti tárolók rendszerképének létrehozásával, hanem lehetővé teszik a forráskód frissítései által aktivált automatizált buildek, a tárolók alaprendszerképének vagy időzítőinak frissítését is.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. Például az alaprendszerkép-frissítési eseményindítók segítségével automatizálhatja az operációs rendszer és az alkalmazás-keretrendszer javítási munkafolyamatát, és megőrizheti a biztonságos környezeteket, miközben betartja a nem változtatható tárolók alapelveit.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.

Feladatok forgatókönyveiTask scenarios

Az ACR-feladatok több forgatókönyvet is támogatnak a tároló-lemezképek és egyéb összetevők kiépítéséhez és karbantartásához.ACR Tasks supports several scenarios to build and maintain container images and other artifacts. A részletekért tekintse meg a cikk következő részeit.See the following sections in this article for details.

Minden ACR-feladathoz tartozik egy társított forráskód-környezet – egy tároló-rendszerkép vagy más összetevő létrehozásához használt forrásfájlok helye.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. Például a környezetek git-tárházat vagy helyi fájlrendszert tartalmaznak.Example contexts include a Git repository or a local filesystem.

A feladatok a futtatási változókelőnyeit is kihasználhatják, így felhasználhatja a feladatokhoz és az összetevőkhöz tartozó feladatokhoz tartozó és szabványosított címkéket.Tasks can also take advantage of run variables, so you can reuse task definitions and standardize tags for images and artifacts.

Gyors feladatQuick task

A belső hurok fejlesztési ciklusa, az alkalmazás kódjának írásához, kiépítéséhez és teszteléséhez szükséges iterációs folyamat valóban a tároló életciklus-felügyeletének kezdete.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.

Mielőtt elvégezte a kód első sorát, az ACR-feladatok gyors feladatával integrált fejlesztési élmény biztosítható a tároló rendszerképének az Azure-ba való kiszervezésével.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. A gyors feladatokkal ellenőrizheti az automatizált Build-definíciókat, és elvégezheti a lehetséges problémákat a kód véglegesítése előtt.With quick tasks, you can verify your automated build definitions and catch potential problems prior to committing your code.

Az ismerős docker build formátum használatakor az az ACR Build parancs az Azure CLI-ben igénybe veszi a környezetet (a felépített fájlok készletét), ELküldi az ACR-feladatokat, és alapértelmezés szerint elküldi a létrehozott rendszerképet a beállításjegyzékbe a befejezés után.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.

Bevezetésért tekintse meg a Azure Container Registryban található tároló rendszerképének elkészítéséhez és futtatásához szükséges rövid útmutatót.For an introduction, see the quickstart to build and run a container image in Azure Container Registry.

Az ACR-feladatok tároló-életciklus primitívek.ACR Tasks is designed as a container lifecycle primitive. Például integrálhatja az ACR-feladatokat a CI/CD-megoldásba.For example, integrate ACR Tasks into your CI/CD solution. Ha az az login szolgáltatást egy egyszerű szolgáltatássalhajtja végre, akkor a CI/CD-megoldás ezután kiadhatja az ACR Build -parancsokat a rendszerkép-buildek elindításához.By executing az login with a service principal, your CI/CD solution could then issue az acr build commands to kick off image builds.

Megtudhatja, hogyan használhatja a gyors feladatokat az első ACR-feladatok oktatóanyagban, Azure Container Registry feladatokkal felépítheti a Felhőbeli tároló lemezképeit.Learn how to use quick tasks in the first ACR Tasks tutorial, Build container images in the cloud with Azure Container Registry Tasks.

Tipp

Ha közvetlenül a forráskódból szeretne létrehozni és leküldeni egy képet, Docker nélkül, Azure Container Registry biztosítja az az ACR Pack Build parancsot (előzetes verzió).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). Ez az eszköz létrehoz egy rendszerképet, és leküldi az alkalmazás forráskódját a felhőalapú natív Buildpackshasználatával.This tool builds and pushes an image from application source code using Cloud Native Buildpacks.

Feladat elindítása a forráskód frissítésekorTrigger task on source code update

Hozzon létre egy tároló-rendszerkép Build vagy többlépéses feladatot a kód véglegesítése, vagy egy lekéréses kérelem vagy frissítés után egy nyilvános vagy privát git-tárházban a GitHubon vagy az 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. Például konfiguráljon egy Build feladatot az Azure CLI-parancs az ACR Task Create paranccsal egy git-tárház és opcionálisan egy ág-és Docker megadásával.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. Amikor a csapat frissíti a tárházban lévő kódot, az ACR-feladatok által létrehozott webhook elindítja a tárházban definiált tároló-rendszerkép összeállítását.When your team updates code in the repository, an ACR Tasks-created webhook triggers a build of the container image defined in the repo.

Az ACR-feladatok a következő eseményindítókat támogatják, amikor a git-tárházat a feladat kontextusa szerint állítja be:ACR Tasks supports the following triggers when you set a Git repo as the task's context:

EseményindítóTrigger Alapértelmezés szerint engedélyezveEnabled by default
VéglegesítésCommit IgenYes
Lekéréses kérelemPull request NemNo

A forráskód-frissítési trigger konfigurálásához meg kell adnia a feladatot egy személyes hozzáférési jogkivonat (PAT) számára, hogy a webhookot a nyilvános vagy privát GitHub vagy az Azure DevOps-tárházban állítsa be.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.

Megjegyzés

Az ACR-feladatok jelenleg nem támogatják a commit vagy a pull kérelem eseményindítóit a GitHub Enterprise reposban.Currently, ACR Tasks doesn't support commit or pull request triggers in GitHub Enterprise repos.

Ismerje meg, hogyan indíthat triggert forráskód-végrehajtásra a második ACR-feladatok oktatóanyagban, és automatizálja a tárolók rendszerképét Azure Container Registry feladatokkal.Learn how to trigger builds on source code commit in the second ACR Tasks tutorial, Automate container image builds with Azure Container Registry Tasks.

Az operációs rendszer és a keretrendszer javításának automatizálásaAutomate OS and framework patching

Az ACR-feladatok hatékonyságának növelése a tároló-Build munkafolyamattal való hatékony feladatokból származik, és képes az alaprendszerkép frissítésének észlelésére.The power of ACR Tasks to truly enhance your container build workflow comes from its ability to detect an update to a base image. Ha a frissített alaplemezképet leküldi a beállításjegyzékbe, vagy egy alaprendszerkép frissül egy nyilvános tárházban (például a Docker hub-ban), az ACR-feladatok automatikusan létrehoznak egy alkalmazás-lemezképet az alapján.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.

A tárolók képei széles körben kategorizálva lehetnek az alapképekbe és az alkalmazás -lemezképbe.Container images can be broadly categorized into base images and application images. Az alaplemezképek jellemzően tartalmazzák az operációs rendszer és az alkalmazás által felépített keretrendszereket, valamint más testreszabásokat is.Your base images typically include the operating system and application frameworks upon which your application is built, along with other customizations. Ezek az alaplemezképek általában nyilvános upstream lemezképeken alapulnak, például: Alpine Linux, Windows, .netvagy Node. js.These base images are themselves typically based on public upstream images, for example: Alpine Linux, Windows, .NET, or Node.js. Az alkalmazási lemezképek közül több is megoszthat egy közös alapképet.Several of your application images might share a common base image.

Ha a felsőbb rétegbeli karbantartó az operációs rendszer vagy az alkalmazás-keretrendszer lemezképét frissíti, például kritikus operációsrendszer-biztonsági javítással, akkor az alaplemezképeket is frissítenie kell, hogy tartalmazza a kritikus javítást.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. Ezután az egyes alkalmazás-rendszerképeket is újra kell építeni, hogy az tartalmazza az alaprendszerkép részét képező felsőbb rétegbeli javításokat.Each application image must then also be rebuilt to include these upstream fixes now included in your base image.

Mivel az ACR-feladatok dinamikusan felderítik az alapszintű képfüggőségeket a tárolók rendszerképének létrehozásakor, az képes érzékelni az alkalmazás rendszerképe alaprendszerképének frissítésekor.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. Egy előre konfigurált Build feladattalaz ACR-feladatok automatikusan újraépítik az összes alkalmazás rendszerképét .With one preconfigured build task, ACR Tasks then automatically rebuilds every application image for you. Ezzel az Automatikus észleléssel és újjáépítéssel az ACR-feladatok elmentik azt az időt és fáradságot, amelyet a rendszer általában a frissített alaprendszerképre hivatkozó minden egyes rendszerkép manuális nyomon követéséhez és frissítéséhez szükséges.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.

A Docker származó rendszerkép-buildek esetében az ACR-feladatok nyomon követik az alaprendszerkép frissítését, ha az alaprendszerkép a következő helyekre esik: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:

  • Ugyanaz az Azure Container Registry, ahol a feladat futThe same Azure container registry where the task runs
  • Egy másik Azure Container Registry ugyanabban a régióbanAnother Azure container registry in the same region
  • Nyilvános tárház a Docker hub-banA public repo in Docker Hub
  • Nyilvános tárház a Microsoft Container RegistrybanA public repo in Microsoft Container Registry

Megjegyzés

  • Az alaprendszerkép-frissítési trigger alapértelmezés szerint engedélyezve van egy ACR-feladatban.The base image update trigger is enabled by default in an ACR task.
  • Jelenleg az ACR-feladatok csak az alkalmazás (Runtime) rendszerképein lévő alaprendszerkép-frissítéseket figyelik.Currently, ACR Tasks only tracks base image updates for application (runtime) images. Az ACR-feladatok nem követik nyomon a többfázisú Dockerfiles használt közbenső (buildtime) lemezképek alaprendszerkép-frissítéseit.ACR Tasks doesn't track base image updates for intermediate (buildtime) images used in multi-stage Dockerfiles.

További információ az operációs rendszerről és a keretrendszer javításáról: a harmadik ACR-feladatok oktatóanyaga, az alapszintű rendszerképek frissítése Azure Container Registry feladatokkal.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.

Feladat ütemezéseSchedule a task

A feladat létrehozásakor vagy frissítésekor egy vagy több időzítő eseményindító beállításával is ütemezhet egy feladatot.Optionally schedule a task by setting up one or more timer triggers when you create or update the task. A feladatok ütemezése hasznos lehet a tároló számítási feladatainak meghatározott ütemezés szerinti futtatásához, illetve karbantartási műveletek vagy tesztek futtatására a beállításjegyzékbe rendszeresen leküldve.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. Részletekért lásd: ACR-feladat futtatása meghatározott ütemterven.For details, see Run an ACR task on a defined schedule.

Többlépéses feladatokMulti-step tasks

A többlépéses tevékenységek a Felhőbeli tároló-lemezképek létrehozásához, teszteléséhez és javításához szükséges lépéseken alapuló feladatok meghatározását és végrehajtását teszik lehetővé.Multi-step tasks provide step-based task definition and execution for building, testing, and patching container images in the cloud. A YAML-fájlokban meghatározott feladatok lépései egyedi Build-és leküldéses műveleteket határoznak meg a tároló lemezképei vagy más összetevői számára.Task steps defined in a YAML file specify individual build and push operations for container images or other artifacts. Emellett egy vagy több tároló végrehajtását is definiálhatják; a lépések a tárolót használják végrehajtási környezetnek.They can also define the execution of one or more containers, with each step using the container as its execution environment.

Létrehozhat például egy több lépésből álló feladatot, amely automatizálja a következőket:For example, you can create a multi-step task that automates the following:

  1. Webalkalmazás-rendszerkép összeállításaBuild a web application image
  2. A webalkalmazás-tároló futtatásaRun the web application container
  3. Webalkalmazás-tesztelési rendszerkép összeállításaBuild a web application test image
  4. Futtassa a webalkalmazás-teszt tárolót, amely teszteket hajt végre a futó alkalmazás tárolóján.Run the web application test container, which performs tests against the running application container
  5. Ha a tesztek sikeresek, hozzon létre egy Helm diagram archiválási csomagotIf the tests pass, build a Helm chart archive package
  6. helm upgrade végrehajtása az új Helm chart Archive csomag használatávalPerform a helm upgrade using the new Helm chart archive package

A többlépéses feladatok lehetővé teszik a rendszerképek kiépítése, futtatása és tesztelése több megkomponálható lépésre, a lépésenkénti függőségek támogatásával.Multi-step tasks enable you to split the building, running, and testing of an image into more composable steps, with inter-step dependency support. Az ACR-feladatok több lépésből álló feladatai esetében részletesebben szabályozható a rendszerképek kiépítése, tesztelése, valamint az operációs rendszer és a keretrendszer javítási folyamatai.With multi-step tasks in ACR Tasks, you have more granular control over image building, testing, and OS and framework patching workflows.

Ismerje meg a többlépéses feladatokat a több lépésből álló Build-, tesztelési és javítási feladatok futtatása az ACR-feladatokbancímű témakörben.Learn about multi-step tasks in Run multi-step build, test, and patch tasks in ACR Tasks.

Környezet helyeiContext locations

Az alábbi táblázat néhány példát mutat be az ACR-feladatok támogatott környezeti helyeire:The following table shows a few examples of supported context locations for ACR Tasks:

Környezet helyeContext location LeírásDescription PéldaExample
Helyi fájlrendszerLocal filesystem A helyi fájlrendszer egyik könyvtárában található fájlok.Files within a directory on the local filesystem. /home/user/projects/myapp
GitHub-főkiszolgáló ágGitHub master branch Egy nyilvános vagy privát GitHub-tárház főkiszolgálójának (vagy más alapértelmezett) ágában lévő fájljai.Files within the master (or other default) branch of a public or private GitHub repository. https://github.com/gituser/myapp-repo.git
GitHub-ágGitHub branch Nyilvános vagy privát GitHub-tárház adott ága.Specific branch of a public or private GitHub repo. https://github.com/gituser/myapp-repo.git#mybranch
GitHub-almappaGitHub subfolder Egy nyilvános vagy privát GitHub-tárház almappájába tartozó fájlok.Files within a subfolder in a public or private GitHub repo. Példa egy ág és almappa specifikációjának kombinációját mutatja be.Example shows combination of a branch and subfolder specification. https://github.com/gituser/myapp-repo.git#mybranch:myfolder
GitHub-véglegesítésGitHub commit Konkrét véglegesítés nyilvános vagy privát GitHub-tárházban.Specific commit in a public or private GitHub repo. Példa a commit hash (SHA) és az almappák specifikációjának kombinációját mutatja be.Example shows combination of a commit hash (SHA) and subfolder specification. https://github.com/gituser/myapp-repo.git#git-commit-hash:myfolder
Azure DevOps almappaAzure DevOps subfolder Egy nyilvános vagy privát Azure-tárház almappájába tartozó fájlok.Files within a subfolder in a public or private Azure repo. Példa az ág és az almappa specifikációjának kombinációját mutatja be.Example shows combination of branch and subfolder specification. https://dev.azure.com/user/myproject/_git/myapp-repo#mybranch:myfolder
Távoli FezRemote tarball Tömörített archívumban található fájlok egy távoli webkiszolgálón.Files in a compressed archive on a remote webserver. http://remoteserver/myapp.tar.gz

Megjegyzés

Ha privát git-tárházat használ egy tevékenység környezetében, meg kell adnia egy személyes hozzáférési jogkivonatot (PAT).When using a private Git repo as a context for a task, you need to provide a personal access token (PAT).

KépplatformokImage platforms

Alapértelmezés szerint az ACR-feladatok lemezképeket készítenek a Linux operációs rendszerhez és az AMD64 architektúrához.By default, ACR Tasks builds images for the Linux OS and the amd64 architecture. A --platform címke megadásával Windows-lemezképeket vagy Linux-rendszerképeket hozhat létre más architektúrák számára.Specify the --platform tag to build Windows images or Linux images for other architectures. Megadhatja az operációs rendszer és a választható architektúrát az operációs rendszer/architektúra formátumában (például --platform Linux/arm).Specify the OS and optionally a supported architecture in OS/architecture format (for example, --platform Linux/arm). ARM-architektúrák esetén az operációs rendszer/architektúra/Variant formátumban is megadhat egy változatot (például --platform Linux/arm64/v8):For ARM architectures, optionally specify a variant in OS/architecture/variant format (for example, --platform Linux/arm64/v8):

Operációs rendszerOS ArchitektúraArchitecture
LinuxLinux amd64amd64
kararm
arm64arm64
386386
WindowsWindows amd64amd64

Feladatütemezés megtekintéseView task logs

Minden feladat futtatásakor a rendszer naplózza a napló kimenetét, amely alapján megállapíthatja, hogy a feladat lépései sikeresen futottak-e.Each task run generates log output that you can inspect to determine whether the task steps ran successfully. Ha az az ACR Build, az ACR Runvagy az ACR Task Run parancsot használja a feladat elindításához, a rendszer továbbítja a feladat futtatásának naplózási kimenetét a konzolra, és a későbbi lekéréshez is tárolja.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. Ha egy feladat automatikusan aktiválódik, például a forráskód-végrehajtás vagy egy alaprendszerkép frissítése esetén, a rendszer csak a feladat naplóit tárolja.When a task is automatically triggered, for example by a source code commit or a base image update, task logs are only stored. Tekintse meg a Azure Portalben futtatott feladatok naplóit, vagy használja az az ACR Task logs parancsot.View the logs for a task run in the Azure portal, or use the az acr task logs command.

Alapértelmezés szerint a rendszer a beállításjegyzékben futtatott feladatok adatait és naplóit 30 napig őrzi meg, majd automatikusan kiüríti.By default, data and logs for task runs in a registry are retained for 30 days and then automatically purged. Ha archiválni szeretné a feladatok futtatásához szükséges adatok archiválását, engedélyezze az az ACR Task Update-Run paranccsal történő archiválást.If you want to archive the data for a task run, enable archiving using the az acr task update-run command. A következő példa engedélyezi az archiválást a feladat futtatási CF11 a beállításjegyzék myregistry.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

Következő lépésekNext steps

Ha készen áll a tárolók rendszerképének és a Felhőbeli karbantartásának automatizálására, tekintse meg az ACR feladatok oktatóanyag-sorozatát.When you're ready to automate container image builds and maintenance in the cloud, check out the ACR Tasks tutorial series.

Telepítse a Docker-bővítményt a Visual Studio Code -hoz, és az Azure-fiók bővítményét az Azure-beli tároló-beállításjegyzékkel való együttműködéshez.Optionally install the Docker Extension for Visual Studio Code and the Azure Account extension to work with your Azure container registries. Lemezképek lekérése és leküldése egy Azure Container registrybe, vagy az ACR-feladatok futtatása a Visual Studio Code-ban.Pull and push images to an Azure container registry, or run ACR Tasks, all within Visual Studio Code.