Informatie over updates van basisinstallatiekopieën voor ACR Tasks

Dit artikel bevat achtergrondinformatie over updates van de basisinstallatiekopieën van een toepassing en hoe deze updates een Azure Container Registry-taak kunnen activeren.

Wat zijn basisinstallatiekopieën?

Dockerfiles die de meeste containerinstallatiekopieën definiëren, geven een bovenliggende installatiekopieën op waaruit de installatiekopieën zijn gebaseerd, ook wel de basisinstallatiekopieën genoemd. Basisinstallatiekopieën bevatten doorgaans het besturingssysteem, bijvoorbeeld Alpine Linux of Windows Nano Server, waarop de overige lagen van de container worden toegepast. Ook kunnen basisinstallatiekopieën toepassingsframeworks zoals Node.js of .NET Core bevatten. Deze basisinstallatiekopieën zijn doorgaans gebaseerd op openbare upstream-installatiekopieën. Verschillende van uw toepassingsinstallatiekopieën kunnen een gemeenschappelijke basisinstallatiekopieën delen.

Een basisinstallatiekopie wordt vaak door de installatiekopie-maintainer bijgewerkt om nieuwe functies of verbeteringen toe te voegen aan het besturingssysteem of framework in de installatiekopie. Beveiligingspatches zijn een andere veelvoorkomende oorzaak van een update van de basisinstallatiekopie. Wanneer deze upstream-updates plaatsvinden, moet u ook uw basisinstallatiekopieën bijwerken om de kritieke oplossing op te nemen. Elke toepassingsinstallatiekopieën moeten vervolgens ook opnieuw worden opgebouwd om deze upstream-oplossingen op te nemen die nu zijn opgenomen in uw basisinstallatiekopieën.

In sommige gevallen, zoals een privéontwikkelingsteam, kan een basisinstallatiekopieën meer dan het besturingssysteem of framework opgeven. Een basisinstallatiekopieën kunnen bijvoorbeeld een gedeelde serviceonderdeelinstallatiekopieën zijn die moeten worden bijgehouden. Leden van een team moeten deze basisinstallatiekopieën mogelijk bijhouden om te testen of moeten de installatiekopieën regelmatig bijwerken bij het ontwikkelen van toepassingsinstallatiekopieën.

Kopieën van basisinstallatiekopieën onderhouden

Voor alle inhoud in uw registers die afhankelijk zijn van basisinhoud die wordt onderhouden in een openbaar register, zoals Docker Hub, wordt u aangeraden de inhoud naar een Azure-containerregister of een ander privéregister te kopiëren. Zorg er vervolgens voor dat u uw toepassingsinstallatiekopieën bouwt door te verwijzen naar de persoonlijke basisinstallatiekopieën. Azure Container Registry biedt een mogelijkheid voor het importeren van installatiekopieën om eenvoudig inhoud te kopiëren uit openbare registers of andere Azure-containerregisters. In de volgende sectie wordt beschreven hoe u ACR Tasks gebruikt om updates van basisinstallatiekopieën bij te houden bij het bouwen van toepassingsupdates. U kunt updates van basisinstallatiekopieën bijhouden in uw eigen Azure-containerregisters en eventueel in openbare upstream-registers.

Updates van basisinstallatiekopieën bijhouden

Met ACR Tasks hebt u de mogelijkheid om automatisch installatiekopieën te maken wanneer een containerinstallatiekopie wordt bijgewerkt. U kunt deze mogelijkheid gebruiken om kopieën van openbare basisinstallatiekopieën in uw Azure-containerregisters te onderhouden en bij te werken en vervolgens toepassingsinstallatiekopieën te herbouwen die afhankelijk zijn van basisinstallatiekopieën.

ACR Tasks detecteert dynamisch basisinstallatiekopieën bij het bouwen van een containerinstallatiekopieën. Hierdoor kan worden gedetecteerd wanneer de basisinstallatiekopieën van een toepassingsinstallatiekopieën worden bijgewerkt. Met één vooraf geconfigureerde buildtaak kan ACR Tasks automatisch elke toepassingsinstallatiekopieën herbouwen die verwijst naar de basisinstallatiekopieë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.

Locaties van basisinstallatiekopieën

Voor installatiekopieën van een Dockerfile detecteert een ACR-taak afhankelijkheden op basisinstallatiekopieën op de volgende locaties:

  • Hetzelfde Azure-containerregister waar de taak wordt uitgevoerd
  • Een ander privé-Azure-containerregister in dezelfde of een andere regio
  • Een openbare opslagplaats in Docker Hub
  • Een openbare opslagplaats in Microsoft Container Registry

Als de basisinstallatiekopie die is opgegeven in de FROM instructie zich op een van deze locaties bevindt, voegt de ACR-taak een hook toe om ervoor te zorgen dat de installatiekopie telkens opnieuw wordt opgebouwd wanneer de basis wordt bijgewerkt.

Meldingen van basisinstallatiekopieën

De tijd tussen het moment waarop een basisinstallatiekopieën worden bijgewerkt en wanneer de afhankelijke taak wordt geactiveerd, is afhankelijk van de locatie van de basisinstallatiekopieën:

  • Basisinstallatiekopieën uit een openbare opslagplaats in Docker Hub of MCR : voor basisinstallatiekopieën in openbare opslagplaatsen controleert een ACR-taak met een willekeurig interval van 10 tot 60 minuten op updates van installatiekopieën. Afhankelijke taken worden dienovereenkomstig uitgevoerd.
  • Basisinstallatiekopieën uit een Azure-containerregister : voor basisinstallatiekopieën in Azure-containerregisters activeert een ACR-taak onmiddellijk een uitvoering wanneer de basisinstallatiekopieën worden bijgewerkt. De basisinstallatiekopieën bevinden zich mogelijk in dezelfde ACR waar de taak wordt uitgevoerd of in een andere ACR in elke regio.

Aanvullende overwegingen

  • Basisinstallatiekopieën voor toepassingsinstallatiekopieën : momenteel houdt een ACR-taak alleen updates van basisinstallatiekopieën voor toepassingsinstallatiekopieën (runtime) bij. Er worden geen updates van basisinstallatiekopieën bijgehouden voor tussenliggende (buildtime)-installatiekopieën die worden gebruikt in Dockerfiles met meerdere fasen.

  • Standaard ingeschakeld: wanneer u een ACR-taak maakt met de opdracht az acr task create, wordt de taak standaard ingeschakeld voor trigger door een update van de basisinstallatiekopieën. Dat wil gezegd, de base-image-trigger-enabled eigenschap is ingesteld op Waar. Als u dit gedrag in een taak wilt uitschakelen, werkt u de eigenschap bij naar Onwaar. Voer bijvoorbeeld de volgende opdracht az acr task update uit:

    az acr task update --registry myregistry --name mytask --base-image-trigger-enabled False
    
  • Trigger voor het bijhouden van afhankelijkheden : als u een ACR-taak wilt inschakelen om de afhankelijkheden van een containerinstallatiekopieën te bepalen en bij te houden, waaronder de basisinstallatiekopieën, moet u eerst de taak activeren om de installatiekopieën ten minste één keer te bouwen. Activeer de taak bijvoorbeeld handmatig met behulp van de opdracht az acr task run .

  • Stabiele tag voor basisinstallatiekopieën : als u een taak wilt activeren op basisinstallatiekopieënupdate, moet de basisinstallatiekopieën een stabiele tag hebben, zoals node:9-alpine. Deze tagging is gebruikelijk voor een basisinstallatiekopieën die worden bijgewerkt met besturingssysteem- en frameworkpatches naar een nieuwste stabiele release. Als de basisinstallatiekopieën worden bijgewerkt met een nieuwe versietag, wordt er geen taak geactiveerd. Zie de richtlijnen voor aanbevolen procedures voor meer informatie over het taggen van afbeeldingen.

  • Andere taaktriggers : in een taak die wordt geactiveerd door updates van basisinstallatiekopieën, kunt u ook triggers inschakelen op basis van het doorvoeren van broncode of een planning. Een update van een basisinstallatiekopieën kan ook een taak met meerdere stappen activeren.

Volgende stappen

Zie de volgende zelfstudies voor scenario's voor het automatiseren van builds van toepassingsinstallatiekopieën nadat een basisinstallatiekopieën zijn bijgewerkt: