Sdílet prostřednictvím


Použití Azure Pipelines k vytváření a nabízení imagí kontejnerů do registrů

Azure DevOps Services

Tento článek vás provede vytvořením pipeline pro sestavení a nahrání Docker image do služby Azure Container Registry nebo Docker Hubu.

Požadavky

Produkt Požadavky
Azure DevOps – projekt Azure DevOps .
oprávnění - :
    - Chcete-li udělit přístup ke všem kanálům v projektu: Musíte být členem skupiny Project Administrators.
    - Chcete-li vytvořit připojení služby: Musíte mít roli Správce nebo Creator pro připojení služby .
– Pokud používáte agenta v místním prostředí, ujistěte se, že je nainstalovaný Docker a modul Dockeru běží se zvýšenými oprávněními. Agenti hostovaní Microsoftem mají předinstalovaný Docker.
GitHub – účet GitHubu.
– Úložiště GitHubu se souborem Dockerfile. Pokud nemáte vlastní projekt, použijte ukázkové úložiště.
připojení ke službě GitHub k autorizaci Azure Pipelines.
Azurová ( Azure) – předplatné Azure.
Azure Container Registry.
Produkt Požadavky
Azure DevOps – projekt Azure DevOps .
oprávnění - :
    - Chcete-li udělit přístup ke všem kanálům v projektu: Musíte být členem skupiny Project Administrators.
    - Chcete-li vytvořit připojení služby: Musíte mít roli Správce nebo Creator pro připojení služby .
– Pokud používáte agenta v místním prostředí, ujistěte se, že je nainstalovaný Docker a modul Dockeru běží se zvýšenými oprávněními. Agenti hostovaní Microsoftem mají předinstalovaný Docker.
GitHub – účet GitHubu.
– Úložiště GitHubu se souborem Dockerfile. Pokud nemáte vlastní projekt, použijte ukázkové úložiště.
připojení ke službě GitHub k autorizaci Azure Pipelines.
Centrum Dockeru – účet Docker Hub.
– Úložiště obrázků Docker Hub.

Vytvoření spojení registru služby Dockeru

Před nasdílením imagí kontejneru do registru je potřeba vytvořit připojení služby v Azure DevOps. Toto připojení služby ukládá přihlašovací údaje potřebné k bezpečnému ověření v registru kontejneru. Další informace naleznete v části připojení služby Docker Registry.

  1. V projektu Azure DevOps vyberte Nastavení projektu>Připojení služby.

    snímek obrazovky s výběrem nastavení projektu

  2. Vyberte Nové připojení služby a Docker registr.

    snímek obrazovky s výběrem registru Dockeru

  3. Vyberte Docker Hub a zadejte následující informace:

    Pole Popis
    ID Dockeru Zadejte id Dockeru.
    Docker heslo Zadejte heslo Dockeru.
    název připojení služby Zadejte název připojení služby.
    Udělení oprávnění k přístupu všem kanálům Tuto možnost vyberte, pokud chcete udělit přístup ke všem kanálům.

    snímek obrazovky s dialogovým oknem připojení ke službě Docker Hub

  4. Vyberte Ověřit a uložit.

Vytvoření kanálu pro sestavení a nasdílení image Dockeru

  • YAML
  • Klasický

Úloha Docker@2 slouží k sestavení a nasdílení image do registru kontejneru. Úloha Docker@2 je navržená tak, aby zjednodušila proces sestavování, nabízení a správy imagí Dockeru v rámci azure Pipelines. Tato úloha podporuje širokou škálu příkazů Dockeru, včetně sestavení, nasdílení změn, přihlášení, odhlášení, spuštění, zastavení a spuštění.

Pomocí následujícího postupu vytvořte kanál YAML, který používá úlohu Docker@2 k sestavení a nasdílení image.

  1. V projektu Azure DevOps vyberte Pipelines a New pipeline.

  2. Jako umístění zdrojového kódu vyberte GitHubu a vyberte úložiště.

    • Pokud jste přesměrováni na GitHub, abyste se mohli přihlásit, zadejte svoje přihlašovací údaje GitHubu.
    • Pokud jste přesměrováni na GitHub, abyste nainstalovali aplikaci Azure Pipelines, vyberte Schválit a nainstalovat.
  3. Vyberte úložiště.

  4. Výběrem šablony úvodního kanálu vytvořte základní konfiguraci kanálu.

  5. Obsah azure-pipelines.yml nahraďte následujícím kódem:

    
    trigger:
    - main
    
    pool:
      vmImage: 'ubuntu-latest' 
    
    variables:
      repositoryName: '<target repository name>' 
    
    steps:
    - task: Docker@2
      inputs:
        containerRegistry: '<docker registry service connection>'
        repository: $(repositoryName)
        command: 'buildAndPush'
        Dockerfile: '**/Dockerfile'
    
    
  6. Upravte soubor YAML kanálu následujícím způsobem:

    • Nahraďte <target repository name> názvem úložiště v registru kontejneru, do kterého chcete vložit image.
    • Nahraďte <docker registry service connection> názvem dříve vytvořeného připojení služby registru Dockeru.
  7. Až budete hotovi, vyberte Uložit a spustit>Uložit a spustit.

  8. Vyberte Úloha, abyste zobrazili protokoly a ověřili úspěšné spuštění kanálu.

  • YAML
  • Klasický
  1. Přejděte do projektu Azure DevOps a v nabídce vlevo vyberte Pipelines.

  2. Vyberte Nové potrubí.

  3. Jako umístění zdrojového kódu vyberte GitHubu a vyberte úložiště.

    • Pokud jste přesměrováni na GitHub, abyste se mohli přihlásit, zadejte svoje přihlašovací údaje GitHubu.
    • Pokud jste přesměrováni na GitHub, abyste nainstalovali aplikaci Azure Pipelines, vyberte Schválit a nainstalovat.
  4. Vyberte Dockeru – Sestavte a nasdílejte image do šablony služby Azure Container Registry.

  5. Vyberte své předplatné Azure a Pokračovat.

  6. Vyberte službu Container Registry a pak vyberte Ověřit a nakonfigurovat.

    Příklad kanálu YAML:

    # Docker
    # Build and push an image to Azure Container Registry
    # https://docs.microsoft.com/azure/devops/pipelines/languages/docker
    
    trigger:
    - main
    
    resources:
    - repo: self
    
    variables:
      # Container registry service connection established during pipeline creation
      dockerRegistryServiceConnection: '7f9dc28e-5551-43ee-891f-33bf61a995de'
      imageRepository: 'usernamepipelinesjavascriptdocker'
      containerRegistry: 'repoistoryname.azurecr.io'
      dockerfilePath: '$(Build.SourcesDirectory)/app/Dockerfile'
      tag: '$(Build.BuildId)'
    
      # Agent VM image name
      vmImageName: 'ubuntu-latest'
    
    stages:
    - stage: Build
      displayName: Build and push stage
      jobs:
      - job: Build
        displayName: Build
        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)
    
    
  7. Vyberte Uložit a spusťte a Uložit a spusťte znovu.

  8. Vyberte Úlohu, abyste zobrazili protokoly a ověřili úspěch spuštění pipeline.

Šablona Dockeru vytvoří připojení služby ke službě Azure Container Registry a pomocí úlohy Docker@2 sestaví a odešle image Dockeru do registru.

Úloha Docker@2 je navržená tak, aby zjednodušila proces sestavování, nabízení a správy imagí Dockeru v rámci azure Pipelines. Tato úloha podporuje širokou škálu příkazů Dockeru, včetně sestavení, nasdílení změn, přihlášení, odhlášení, spuštění, zastavení a spuštění.

Při použití agentů v místním prostředí se ujistěte, že je Docker nainstalovaný na hostiteli agenta a že modul/démon Dockeru běží se zvýšenými oprávněními.