Share via


Een containerinstallatiekopieën configureren om implementaties uit te voeren

In dit artikel leert u hoe u aangepaste containerinstallatiekopieën bouwt om uw omgevingsdefinities te implementeren in Azure Deployment Environments (ADE).

Een omgevingsdefinitie bestaat uit ten minste twee bestanden: een sjabloonbestand, zoals azuredeploy.json en een manifestbestand met de naam environment.yaml. ADE maakt gebruik van containers voor het implementeren van omgevingsdefinities en biedt systeemeigen ondersteuning voor de Arm-frameworks (Azure Resource Manager) en Bicep IaC.

Met het ADE-uitbreidbaarheidsmodel kunt u aangepaste containerinstallatiekopieën maken voor gebruik met uw omgevingsdefinities. Met behulp van het uitbreidbaarheidsmodel kunt u uw eigen aangepaste containerinstallatiekopieën maken en opslaan in een containerregister, zoals DockerHub. U kunt vervolgens verwijzen naar deze installatiekopieën in uw omgevingsdefinities om uw omgevingen te implementeren.

Het ADE-team biedt een selectie van installatiekopieën om u op weg te helpen, waaronder een kerninstallatiekopieën en een Arm-/Bicep-installatiekopieën (Azure Resource Manager). U kunt deze voorbeeldafbeeldingen openen in de map Runner-Images .

De ADE CLI is een hulpprogramma waarmee u aangepaste installatiekopieën kunt maken met behulp van ADE-basisinstallatiekopieën. U kunt de ADE CLI gebruiken om uw implementaties en verwijderingen aan te passen aan uw werkstroom. De ADE CLI is vooraf geïnstalleerd op de voorbeeldafbeeldingen. Zie de referentie voor aangepaste Runner-installatiekopieën van CLI voor meer informatie over de ADE CLI.

Vereisten

Een containerinstallatiekopieën maken en bouwen

In dit voorbeeld leert u hoe u een Docker-installatiekopieën bouwt om ADE-implementaties te gebruiken en toegang te krijgen tot de ADE CLI, waarbij uw installatiekopieën worden gebaseerd op een van de door ADE geschreven installatiekopieën.

Voer de volgende stappen uit om een installatiekopieën te bouwen die zijn geconfigureerd voor ADE:

  1. Baseer uw afbeelding op een voorbeeldafbeelding van ADE of de afbeelding van uw keuze met behulp van de FROM-instructie.
  2. Installeer alle benodigde pakketten voor uw installatiekopie met behulp van de RUN-instructie.
  3. Maak een map met scripts op hetzelfde niveau als uw Dockerfile, sla uw deploy.sh en delete.sh bestanden erin op en zorg ervoor dat deze scripts detecteerbaar en uitvoerbaar zijn in de gemaakte container. Deze stap is nodig om uw implementatie te laten werken met behulp van de ADE-kerninstallatiekopieën.
  4. Bouw en push uw installatiekopieën naar uw containerregister en zorg ervoor dat deze toegankelijk is voor ADE.
  5. Verwijs naar uw afbeelding in de runner eigenschap van uw omgevingsdefinitie.

Selecteer een voorbeeld van een containerinstallatiekopie met behulp van de FROM-instructie

Als u een Docker-installatiekopieën wilt maken voor het gebruik van ADE-implementaties en toegang wilt krijgen tot de ADE CLI, moet u uw installatiekopieën baseren op een van de ADE-creatiekopieën. Neem een FROM-instructie op in een gemaakte DockerFile voor uw nieuwe installatiekopie die verwijst naar een ADE-geschreven voorbeeldinstallatiekopie die wordt gehost op Microsoft-artefactregister. Wanneer u ADE-geschreven installatiekopieën gebruikt, moet u uw aangepaste installatiekopieën baseren op de ADE-kerninstallatiekopieën.

Hier volgt een voorbeeld van een FROM-instructie, die verwijst naar de voorbeeldkernafbeelding:

FROM mcr.microsoft.com/deployment-environments/runners/core:latest

Met deze instructie wordt de laatst gepubliceerde basisinstallatiekopie opgehaald en wordt deze een basis voor uw aangepaste installatiekopie.

Pakketten installeren in een installatiekopieën

U kunt pakketten installeren met de Azure CLI met behulp van de RUN-instructie, zoals wordt weergegeven in het volgende voorbeeld:

RUN az bicep install

De ADE-voorbeeldinstallatiekopieën zijn gebaseerd op de Azure CLI-installatiekopieën en hebben de ADE CLI- en JQ-pakketten vooraf geïnstalleerd. Meer informatie over de Azure CLI en het JQ-pakket.

Als u meer pakketten wilt installeren die u nodig hebt in uw installatiekopie, gebruikt u de RUN-instructie.

Operation Shell-scripts uitvoeren

In de voorbeeldafbeeldingen worden bewerkingen bepaald en uitgevoerd op basis van de naam van de bewerking. Momenteel worden de twee ondersteunde bewerkingsnamen geïmplementeerd en verwijderd.

Als u uw aangepaste installatiekopieën wilt instellen om deze structuur te gebruiken, geeft u een map op het niveau van uw Dockerfile met de naam scripts op en geeft u twee bestanden op, deploy.sh en delete.sh. Het implementatieshell-script wordt uitgevoerd wanneer uw omgeving wordt gemaakt of opnieuw wordt geïmplementeerd en het shell-script verwijderen wordt uitgevoerd wanneer uw omgeving wordt verwijderd. U ziet voorbeelden van shellscripts in de opslagplaats onder de map Runner-Images.

Voeg de volgende regels toe aan uw Dockerfile om ervoor te zorgen dat deze shellscripts uitvoerbaar zijn:

COPY scripts/* /scripts/
RUN find /scripts/ -type f -iname "*.sh" -exec dos2unix '{}' '+'
RUN find /scripts/ -type f -iname "*.sh" -exec chmod +x {} \;

De installatiekopie bouwen

Voordat u de installatiekopieën bouwt die naar uw register moeten worden gepusht, moet u ervoor zorgen dat de Docker Engine op uw computer is geïnstalleerd . Navigeer vervolgens naar de map van uw Dockerfile en voer de volgende opdracht uit:

docker build . -t {YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}

Als u bijvoorbeeld uw installatiekopieën wilt opslaan onder een opslagplaats in het register met de naam customImageen wilt uploaden met de tagversie, 1.0.0voert u het volgende uit:

docker build . -t {YOUR_REGISTRY}.azurecr.io/customImage:1.0.0

De installatiekopieën naar een register pushen

Als u aangepaste installatiekopieën wilt gebruiken, moet u een openbaar toegankelijk installatiekopieregister instellen met anonieme pull-installatiekopie ingeschakeld. Op deze manier hebben Azure Deployment Environments toegang tot uw aangepaste installatiekopieën die in onze container kunnen worden uitgevoerd.

Azure Container Registry is een Azure-aanbieding waarin containerinstallatiekopieën en vergelijkbare artefacten worden opgeslagen.

Volg een van de quickstarts om een register te maken dat kan worden uitgevoerd via de Azure CLI, Azure Portal, PowerShell-opdrachten en meer.

Voer de volgende opdrachten uit in de Azure CLI om uw register in te stellen voor het ophalen van anonieme installatiekopieën:

az login
az acr login -n {YOUR_REGISTRY}
az acr update -n {YOUR_REGISTRY} --public-network-enabled true
az acr update -n {YOUR_REGISTRY} --anonymous-pull-enabled true

Wanneer u klaar bent om uw installatiekopieën naar uw register te pushen, voert u de volgende opdracht uit:

docker push {YOUR_REGISTRY}.azurecr.io/{YOUR_IMAGE_LOCATION}:{YOUR_TAG}

Verbinding maken de installatiekopieën naar uw omgevingsdefinitie

Wanneer u omgevingsdefinities maakt voor het gebruik van uw aangepaste installatiekopieën in de implementatie, bewerkt u de runner eigenschap in het manifestbestand (environment.yaml of manifest.yaml).

runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}"

Een containerinstallatiekopieën bouwen met een script

Microsoft biedt een snelstartscript om u te helpen aan de slag te gaan. Het script bouwt uw installatiekopieën en pusht deze naar een opgegeven Azure Container Registry (ACR) onder de opslagplaats ade en de tag latest.

Als u het script wilt gebruiken, moet u het volgende doen:

  1. Configureer een dockerfile- en scriptsmap ter ondersteuning van het ADE-uitbreidbaarheidsmodel.
  2. Geef een registernaam en map op voor uw aangepaste installatiekopieën.
  3. Laat de Azure CLI en Docker Desktop zijn geïnstalleerd en in uw PATH-variabelen.
  4. Machtigingen hebben om naar het opgegeven register te pushen.

U kunt het script hier uitvoeren.

U kunt het script aanroepen met behulp van de volgende opdracht in PowerShell:

.\quickstart-image-build.ps1 -Registry '{YOUR_REGISTRY}' -Directory '{DIRECTORY_TO_YOUR_IMAGE}'

Als u bovendien wilt pushen naar een specifieke opslagplaats en tagnaam, kunt u het volgende uitvoeren:

.\quickstart-image.build.ps1 -Registry '{YOUR_REGISTRY}' -Directory '{DIRECTORY_TO_YOUR_IMAGE}' -Repository '{YOUR_REPOSITORY}' -Tag '{YOUR_TAG}'

Toegang tot bewerkingslogboeken en foutdetails

ADE slaat foutdetails op voor een mislukte implementatie in het bestand $ADE_ERROR_LOG in de container.

Problemen met een mislukte implementatie oplossen:

  1. Meld u aan bij de ontwikkelaarsportal.

  2. Identificeer de omgeving die niet kan worden geïmplementeerd en selecteer Details weergeven.

    Schermopname van foutdetails van mislukte implementatie, met name een ongeldige naam voor een opslagaccount.

  3. Bekijk de foutdetails in de sectie Foutdetails .

    Schermopname van een mislukte implementatie van een omgeving met de knop Details weergeven weergegeven.

Daarnaast kunt u de Azure CLI gebruiken om de foutdetails van een omgeving weer te geven met behulp van de volgende opdracht:

az devcenter dev environment show --environment-name {YOUR_ENVIRONMENT_NAME} --project {YOUR_PROJECT_NAME}

Als u de bewerkingslogboeken voor een omgevingsimplementatie of verwijdering wilt weergeven, gebruikt u de Azure CLI om de meest recente bewerking voor uw omgeving op te halen en bekijkt u vervolgens de logboeken voor die bewerkings-id.

# Get list of operations on the environment, choose the latest operation
az devcenter dev environment list-operation --environment-name {YOUR_ENVIRONMENT_NAME} --project {YOUR_PROJECT_NAME}
# Using the latest operation ID, view the operation logs
az devcenter dev environment show-logs-by-operation --environment-name {YOUR_ENVIRONMENT_NAME} --project {YOUR_PROJECT_NAME} --operation-id {LATEST_OPERATION_ID}