Använda Docker YAML för att skapa och push-överföra Docker-avbildningar till Azure Container Registry
Azure DevOps Services
Den här självstudien visar hur du använder en pipeline baserat på en Azure Pipelines Docker-mall för att skapa ett containerbaserat program och push-överföra den till Azure Container Registry. Mallen konfigurerar en YAML-pipeline för kontinuerlig integrering där ändringar i den nya kodlagringsplatsen utlöser pipelinen för att skapa och publicera uppdaterade Docker-avbildningar i registret.
Pipelinen för Docker-containermallen använder Microsoft-värdbaserade agenter och skapar en tjänsthuvudnamnsbaserad tjänstanslutning till Azure Container Registry. En pipeline som utför en liknande process med hjälp av lokalt installerade agenter och en tjänstanslutning som du skapar själv finns i Skapa och skicka Docker-avbildningar till Azure Container Registry.
Förutsättningar
Ett Azure-konto där du har behörighet att skapa och konfigurera resurser. Om du inte har ett Azure-konto registrerar du dig för ett kostnadsfritt konto.
En Azure DevOps-organisation och ett projekt där du har behörighet att skapa pipelines och distribuera appar. Information om hur du skapar en organisation eller ett projekt finns i Skapa en ny organisation eller Skapa ett projekt i Azure DevOps.
Ett GitHub-konto.
Viktigt!
När du använder GitHub i följande procedurer kan du uppmanas att skapa en GitHub-tjänstanslutning, logga in på GitHub, autentisera till GitHub-organisationer, installera Azure Pipelines eller auktorisera Azure Pipelines. Följ anvisningarna på skärmen för att slutföra processen. Mer information finns i Åtkomst till GitHub-lagringsplatser.
Hämta exempelappen
I GitHub förgrenar eller klonar du Docker- och Kubernetes-exempellagringsplatsen Node.JS app .
Skapa ett containerregister
Logga in på Azure Cloud Shell från Azure-portalen genom att välja ikonen i den översta menyraden. Se till att använda Bash-gränssnittet.
I Cloud Shell kör du följande kommandon för att skapa en resursgrupp och ett Azure-containerregister med hjälp av Azure CLI. Containerregistrets namn måste vara gemener.
az group create --name myapp-rg --location eastus az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
Om du vill distribuera en Docker-avbildning till Azure-containerregistret måste du aktivera administratörsanvändarkontot för registret, som är inaktiverat som standard. Om du vill aktivera administratörsanvändaren för registret använder du parametern
--admin-enabled
medaz acr update
kommandot . Mer information och instruktioner finns i Administratörskonto.az acr update -n <acrName> --admin-enabled true
Du kan också använda användargränssnittet för Azure-portalen för att skapa ditt Azure-containerregister. Anvisningar finns i Skapa ett containerregister. Aktivera administratörskontot i Egenskaper när du har skapat registret.
Skapa pipelinen
I ditt Azure DevOps-projekt väljer du Pipelines>Ny pipeline eller Skapa pipeline om den här pipelinen är den första i projektet.
Välj GitHub som plats för källkoden.
På skärmen Välj en lagringsplats väljer du exempelkodlagringsplatsen.
På skärmen Konfigurera din pipeline väljer du Docker: Build och push-överför en avbildning till Azure Container Registry-pipelinen.
På Docker-skärmen väljer du din Azure-prenumeration och väljer sedan Fortsätt.
Välj ditt containerregister på den nedrullningsbara menyn, ange ett avbildningsnamn och välj sedan Verifiera och konfigurera.
Azure Pipelines genererar en azure-pipelines.yml fil som definierar din pipeline.
Granska koden i azure-pipelines.yml och välj sedan Spara och kör.
Du kan också redigera incheckningsmeddelandet och ange en beskrivning. Välj sedan Spara och kör igen för att checka in azure-pipelines.yml filen till lagringsplatsen och starta en version.
På byggkörningssidan visas bygginformation och förlopp. Om du vill se din pipeline i praktiken väljer du Skapa under Jobb.
Pipelineinformation
Pipelinen genereras från Docker-containermallen. Byggfasen använder Docker v2-uppgiften för att skapa och push-överföra Docker-avbildningen till containerregistret.
Docker-uppgiften använder en Docker-registertjänstanslutning med autentisering med tjänstens huvudnamn för att aktivera din pipeline för att skicka avbildningar till containerregistret. Docker-containermallen genererar den här tjänstanslutningen när pipelinen skapas.
- stage: Build
displayName: Build and push stage
jobs:
- job: Build
displayName: Build job
pool:
vmImage: $(vmImageName)
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)
Rensa resurser
När du är klar med de resurser som du skapade i den här självstudien kan du ta bort dem för att undvika ytterligare avgifter. Kör följande Cloud Shell-kommando för att ta bort resursgruppen och alla resurser i den.
az group delete --name myapp-rg