Använda Azure Pipelines för att skapa och skicka containeravbildningar till register
Artikel
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Den här artikeln vägleder dig genom konfigurationen för att använda Azure Pipelines för att skapa och skicka en Docker-avbildning till ett Azure Container Registry, Docker Hub och Google Artifact Registry. Dessutom beskrivs användningen av System.AccessToken för säker autentisering i din pipeline.
Den här artikeln vägleder dig genom konfigurationen för att använda Azure Pipelines för att skapa och skicka en Docker-avbildning till en Docker Hub och Google Artifact Registry. Dessutom beskrivs användningen av System.AccessToken för säker autentisering i din pipeline.
Du lär dig hur du skapar en YAML-pipeline för att skapa och skicka en Docker-avbildning till ett containerregister. Den Docker@2 uppgiften används för att skapa och skicka avbildningen till containerregistret.
Förutsättningar
Ett Azure DevOps-projekt.
Ett containerregister (Docker Hub, Google Artifact Registry eller Azure Container Registry).
En GitHub-lagringsplats med en Dockerfile. Om du inte har en kan du använda exempellagringsplatsen I webbläsaren går du till exempellagringsplatsen och förgrenar den till ditt GitHub-konto.
Docker. Om du använder en lokalt installerad agent kontrollerar du att Docker är installerat och att Docker-motorn körs med förhöjd behörighet. Microsoft-värdbaserade agenter har Docker förinstallerat.
Ett Azure DevOps-projekt.
Ett containerregister (Docker Hub eller Google Artifact Registry).
En GitHub-lagringsplats med en Dockerfile. Om du inte har en kan du använda exempellagringsplatsen I webbläsaren går du till exempellagringsplatsen och förgrenar den till ditt GitHub-konto.
Docker. Om du använder en lokalt installerad agent kontrollerar du att Docker är installerat och att Docker-motorn körs med förhöjd behörighet. Microsoft-värdbaserade agenter har Docker förinstallerat.
Skapa en Docker-tjänstanslutning
Innan du skickar containeravbildningar till ett register måste du skapa en tjänstanslutning i Azure DevOps. Den här tjänstanslutningen lagrar de autentiseringsuppgifter som krävs för att autentisera säkert med containerregistret. Gå till sidan Tjänstanslutningar i ditt Azure DevOps-projekt för att skapa en ny tjänstanslutning och välj anslutningstypen Docker Registry .
Det finns olika processer för att skapa en tjänstanslutning för en Docker Hub och ett Google Artifact Registry.
Välj alternativet Docker Hub under Docker-registertjänstanslutning och ange ditt användarnamn och lösenord för att skapa en Docker-tjänstanslutning.
Välj alternativet Azure Container Registry under Docker-registertjänstanslutning och ange den information som krävs av den autentiseringsmetod du väljer.
Push-överföring av en Docker-avbildning till Azure Container Registry stöds inte i Azure DevOps Server.
Så här skapar du en Docker-tjänstanslutning som är associerad med Google Artifact Registry:
Öppna projektet i GCP-konsolen (Google Cloud Platform) och öppna sedan Cloud Shell
Om du vill spara tid på att skriva projekt-ID och beräkningsmotorns zonalternativ anger du standardkonfigurationsvärden genom att köra följande kommandon:
gcloud config set project [PROJECT_NAME]
gcloud config set compute/zone [ZONE]
Ersätt [PROJECT_NAME] med namnet på ditt GCP-projekt och ersätt [ZONE] med namnet på den zon som du ska använda för att skapa resurser. Om du är osäker på vilken zon du ska välja använder du us-central1-a. Till exempel:
gcloud config set project azure-pipelines-test-project-12345
gcloud config set compute/zone us-central1-a
Den Docker@2 uppgiften är utformad för att effektivisera processen med att skapa, push-överföra och hantera Docker-avbildningar i dina Azure Pipelines. Den här uppgiften stöder en mängd olika Docker-kommandon, inklusive build, push, login, logout, start, stop och run.
Följande steg beskriver hur du skapar en YAML-pipeline som använder den Docker@2 uppgiften för att skapa och push-överföra avbildningen.
Gå till ditt Azure DevOps-projekt och välj Pipelines på den vänstra menyn.
Välj Ny pipeline för att skapa en ny pipeline.
Välj GitHub eller GitHub Enterprise Server som plats för källkoden.
Om du inte redan har gjort det kan du auktorisera Azure Pipelines att ansluta till ditt GitHub Enterprise Server-konto.
Välj Anslut till GitHub Enterprise Server.
Ange din kontoinformation och välj sedan Verifiera och spara.
Välj din lagringsplats.
Om du omdirigeras till GitHub
Välj mallen Startpipeline för att skapa en grundläggande pipelinekonfiguration.
Ersätt innehållet i azure-pipelines.yml med följande kod.
Beroende på om du distribuerar en Linux- eller Windows-app måste du ange vmImage antingen ubuntu-latest eller windows-latest. Om du använder en lokalt installerad agent anger du vmImage namnet på poolen som innehåller den lokalt installerade agenten med Docker-funktionen. Du kan lägga till demands: docker egenskapen för att säkerställa att en agent med Docker installerad är markerad.
Ersätt <docker connection> med namnet på Docker-tjänstanslutningen som du skapade tidigare.
Ersätt <target repository name> med namnet på lagringsplatsen i containerregistret där du vill push-överföra avbildningen. Exempel: <your-docker-hub-username>/<repository-name>
När du sparar azure-pipelines.yml-filen på lagringsplatsen uppmanas du att lägga till ett incheckningsmeddelande. Ange ett meddelande och välj sedan Spara och kör.
När du använder lokalt installerade agenter måste du se till att Docker är installerat på agentens värd och att Docker-motorn/daemonen körs med förhöjd behörighet.
För att skapa avbildningen måste Docker installeras på agentens värd och Docker-motorn/daemon måste köras med förhöjd behörighet. Använd följande steg för att skapa din pipeline med yaml-pipelineredigeraren.
Gå till samlingen och skapa ett projekt.
I projektet väljer du Pipelines.
Välj Skapa pipeline.
Välj GitHub Enterprise Server som plats för källkoden.
Om du inte redan har gjort det kan du auktorisera Azure Pipelines att ansluta till ditt GitHub Enterprise Server-konto.
Välj Anslut till GitHub Enterprise Server.
Ange din kontoinformation och välj sedan Verifiera och spara.
Välj din lagringsplats.
Om du omdirigeras till GitHub för att installera Azure Pipelines-appen väljer du Godkänn och installera.
Om du vill konfigurera din pipeline väljer du mallen Skapa en Docker-avbildning .
I YAML-pipelineredigeraren ersätter du innehållet i YAML-filen med följande kod. Ersätt poolnamnet med namnet på poolen som innehåller din egen värdbaserade agent med Docker-funktionen.
Beroende på om du distribuerar en Linux- eller Windows-app måste du ange vmImage antingen ubuntu-latest eller windows-latest.
Ersätt <target repository name> med namnet på lagringsplatsen i containerregistret där du vill push-överföra avbildningen. Exempel: <your-docker-hub-username>/<repository-name>
Ersätt <docker connection> med namnet på Docker-tjänstanslutningen som du skapade tidigare.
Den Docker@2 uppgiften används för att skapa och skicka avbildningen till containerregistret.
Den Docker@2 uppgiften är utformad för att effektivisera processen med att skapa, push-överföra och hantera Docker-avbildningar i dina Azure Pipelines. Den här uppgiften stöder en mängd olika Docker-kommandon, inklusive build, push, login, logout, start, stop och run.
Följande steg beskriver hur du skapar en YAML-pipeline som använder den Docker@2 uppgiften för att skapa och push-överföra avbildningen.
Gå till ditt Azure DevOps-projekt och välj Pipelines på den vänstra menyn.
Välj Ny pipeline för att skapa en ny pipeline.
Välj GitHub eller GitHub Enterprise Server som plats för källkoden.
Om du inte redan har gjort det kan du auktorisera Azure Pipelines att ansluta till ditt GitHub Enterprise Server-konto.
Välj Anslut till GitHub Enterprise Server.
Ange din kontoinformation och välj sedan Verifiera och spara.
Välj din lagringsplats.
Välj mallen Startpipeline för att skapa en grundläggande pipelinekonfiguration.
Ersätt innehållet i azure-pipelines.yml med följande kod.
Beroende på om du distribuerar en Linux- eller Windows-app måste du ange vmImage antingen ubuntu-latest eller windows-latest. Om du använder en lokalt installerad agent anger du vmImage namnet på poolen som innehåller den lokalt installerade agenten med Docker-funktionen. Du kan lägga till demands: docker egenskapen för att säkerställa att en agent med Docker installerad är markerad.
Ersätt <docker connection> med namnet på Docker-tjänstanslutningen som du skapade tidigare.
Ersätt <target repository name> med namnet på lagringsplatsen i containerregistret där du vill push-överföra avbildningen. Exempel: myregistry.azurecr.io/myimage
När du sparar azure-pipelines.yml-filen på lagringsplatsen uppmanas du att lägga till ett incheckningsmeddelande. Ange ett meddelande och välj sedan Spara och kör.
När du använder lokalt installerade agenter måste du se till att Docker är installerat på agentens värd och att Docker-motorn/daemonen körs med förhöjd behörighet.
Push-överföring av docker-avbildningar till Azure Container Registry stöds inte i Azure DevOps Server.
Den Docker@2 uppgiften är utformad för att effektivisera processen med att skapa, push-överföra och hantera Docker-avbildningar i dina Azure Pipelines. Den här uppgiften stöder en mängd olika Docker-kommandon, inklusive build, push, login, logout, start, stop och run.
Följande steg beskriver hur du skapar en YAML-pipeline som använder den Docker@2 uppgiften för att skapa och push-överföra avbildningen.
Gå till ditt Azure DevOps-projekt och välj Pipelines på den vänstra menyn.
Välj Ny pipeline för att skapa en ny pipeline.
Välj GitHub eller GitHub Enterprise Server som plats för källkoden.
Om du inte redan har gjort det kan du auktorisera Azure Pipelines att ansluta till ditt GitHub Enterprise Server-konto.
Välj Anslut till GitHub Enterprise Server.
Ange din kontoinformation och välj sedan Verifiera och spara.
Välj din lagringsplats.
Välj mallen Startpipeline för att skapa en grundläggande pipelinekonfiguration.
Ersätt innehållet i azure-pipelines.yml med följande kod.
Beroende på om du distribuerar en Linux- eller Windows-app måste du ange vmImage antingen ubuntu-latest eller windows-latest. Om du använder en lokalt installerad agent anger du vmImage namnet på poolen som innehåller den lokalt installerade agenten med Docker-funktionen. Du kan lägga till demands: docker egenskapen för att säkerställa att en agent med Docker installerad är markerad.
Ersätt <docker connection> med namnet på Docker-tjänstanslutningen som du skapade tidigare.
Ersätt <target repository name> med namnet på lagringsplatsen i containerregistret där du vill push-överföra avbildningen. Exempel: <your-project-id>/<your-image-name>
När du sparar azure-pipelines.yml-filen på lagringsplatsen uppmanas du att lägga till ett incheckningsmeddelande. Ange ett meddelande och välj sedan Spara och kör.
När du använder lokalt installerade agenter måste du se till att Docker är installerat på agentens värd och att Docker-motorn/daemonen körs med förhöjd behörighet.
För att skapa avbildningen måste Docker installeras på agentens värd och Docker-motorn/daemon måste köras med förhöjd behörighet. Använd följande steg för att skapa din pipeline med yaml-pipelineredigeraren.
Gå till samlingen och skapa ett projekt.
I projektet väljer du Pipelines.
Välj Skapa pipeline.
Välj GitHub Enterprise Server som plats för källkoden.
Om du inte redan har gjort det kan du auktorisera Azure Pipelines att ansluta till ditt GitHub Enterprise Server-konto.
Välj Anslut till GitHub Enterprise Server.
Ange din kontoinformation och välj sedan Verifiera och spara.
Välj din lagringsplats.
Om du vill konfigurera din pipeline väljer du mallen Skapa en Docker-avbildning .
I YAML-pipelineredigeraren ersätter du innehållet i YAML-filen med följande kod. Ersätt poolnamnet med namnet på poolen som innehåller din egen värdbaserade agent med Docker-funktionen.
Beroende på om du distribuerar en Linux- eller Windows-app måste du ange vmImage antingen ubuntu-latest eller windows-latest.
Ersätt <target repository name> med namnet på lagringsplatsen i containerregistret där du vill push-överföra avbildningen. Exempel: <your-project-id>/<your-image-name>
Ersätt <docker connection> med namnet på Docker-tjänstanslutningen som du skapade tidigare.
På sidan Spara och kör väljer du Spara och kör igen.
Du kan se pipelinekörningen och visa loggarna för att se Docker-avbildningen som skapas och push-överföras till containerregistret.
Använda System.AccessToken för autentisering i Docker@2 uppgift
Du kan autentisera med ett containerregister med hjälp av den System.AccessToken som tillhandahålls av Azure DevOps. Den här token ger säker åtkomst till resurser i din pipeline utan att exponera känsliga autentiseringsuppgifter.
I följande YAML-pipelineexempel används den Docker@2 uppgiften för att logga in i containerregistret och push-överföra Docker-avbildningen. System.AccessToken Anges som en miljövariabel för att autentisera Docker-kommandona.
Ersätt <docker connection> med anslutningsnamnet för Docker-registertjänsten.
Ersätt <your repository> med namnet på Docker-lagringsplatsen.