Sdílet prostřednictvím


Sestavování a publikování imagí Dockeru do služby Azure Container Registry

Azure DevOps Services | Azure DevOps Server 2022

Pomocí Azure Pipelines můžete nastavit pracovní postup kanálu pro sestavení a publikování imagí Dockeru do služby Azure Container Registry. V tomto článku se dozvíte, jak:

  • Vytvoření registru služby Azure Container Registry
  • Nastavení místního agenta na virtuálním počítači Azure
  • Nastavení identity spravované služby
  • Vytvoření připojení služby Registru Dockeru
  • Sestavení a publikování image do služby Azure Container Registry

Požadavky

Získání kódu

Fork nebo naklonujte ukázkovou aplikaci, abyste mohli postupovat podle tohoto kurzu.

https://github.com/MicrosoftDocs/pipelines-javascript-docker

Vytvoření registru služby Azure Container Registry

  1. Přejděte na Azure Portal.

  2. Na levém navigačním panelu vyberte Vytvořit prostředek a pak vyberte Kontejnery a Container Registry.

  3. Vyberte své předplatné a pak vyberte skupinu prostředků nebo vytvořte novou.

  4. Zadejte název registru kontejneru. Název registru musí být jedinečný v rámci Azure a musí obsahovat alespoň 5 znaků.

  5. Vyberte upřednostňované umístění a skladovou položku a pak vyberte Zkontrolovat a vytvořit.

  6. Zkontrolujte nastavení a pak vyberte Vytvořit , až budete hotovi.

Nastavení virtuálního počítače agenta v místním prostředí

Pokud chcete použít identitu spravované služby se službou Azure Pipelines k publikování imagí Dockeru do služby Azure Container Registry, musíme na virtuálním počítači Azure nastavit vlastního agenta v místním prostředí.

Vytvoření virtuálního počítače

  1. Přejděte na Azure Portal.

  2. Na levém navigačním panelu vyberte Vytvořit prostředek a pak vyberte Virtuální počítač ->Vytvořit.

  3. Vyberte své předplatné a pak vyberte skupinu prostředků, kterou jste použili k vytvoření registru kontejneru.

  4. Pojmenujte virtuální počítač a zvolte image.

  5. Zadejte svoje uživatelské jméno a heslo a pak vyberte Zkontrolovat a vytvořit.

  6. Zkontrolujte nastavení a pak vyberte Vytvořit , až budete hotovi.

  7. Až se nasazení dokončí, vyberte Přejít k prostředku.

Vytvoření fondu agentů

  1. V projektu Azure DevOps vyberte ikonu ikona ozubeného kola ozubeného kola a přejděte do nastavení projektu.

  2. Vyberte fondy agentů a pak vyberte Přidat fond.

  3. Vyberte Nový a pak v rozevírací nabídce Typ fondu vyberte Možnost Vlastní hostování.

  4. Pojmenujte fond a zaškrtněte políčko Udělit přístup všem kanálům .

  5. Až budete hotovi, vyberte Vytvořit .

  6. Teď vyberte fond, který jste právě vytvořili, a pak vyberte Nový agent.

  7. Pokyny v tomto okně použijeme k nastavení vašeho agenta na virtuálním počítači, který jste vytvořili dříve. Výběrem tlačítka Kopírovat zkopírujte odkaz ke stažení do schránky.

    Snímek obrazovky znázorňující, jak nastavit agenta

Vytvoření osobního přístupového tokenu (PAT)

  1. V projektu Azure DevOps vyberte Uživatelská nastavení a pak vyberte Osobní přístupové tokeny.

  2. Vyberte Nový token a vytvořte nový osobní přístupový token.

  3. Zadejte název pat a zvolte datum vypršení platnosti.

  4. Vyberte Možnost Vlastní definované v oborech a pak vyberte Zobrazit všechny obory.

  5. Vyberte Fondy agentů ->Číst a spravovat a Skupiny nasazení ->Číst a spravovat.

  6. Po dokončení vyberte Vytvořit a uložte pat do bezpečného umístění.

Nastavení agenta v místním prostředí

  1. Na webu Azure Portal se připojte k virtuálnímu počítači.

  2. Na příkazovém řádku PowerShellu se zvýšenými oprávněními stáhněte agenta spuštěním následujícího příkazu.

    Invoke-WebRequest -URI <YOUR_AGENT_DOWNLOAD_LINK> -UseBasicParsing  -OutFile <FILE_PATH> 
    ##Example: Invoke-WebRequest -URI https://vstsagentpackage.azureedge.net/agent/2.213.2/vsts-agent-win-x64-2.213.2.zip -OutFile C:\vsts-agent-win-x64-2.213.2.zip
    
  3. Spuštěním následujícího příkazu extrahujte a vytvořte agenta.

    mkdir agent ; cd agent
    Add-Type -AssemblyName System.IO.Compression.FileSystem ; [System.IO.Compression.ZipFile]::ExtractToDirectory("<FILE_PATH>", "$PWD")
    
  4. Spuštěním následujícího příkazu spusťte konfiguraci agenta.

    .\config.cmd
    
  5. Po zobrazení výzvy k zadání vstupu zadejte adresu URL serveru. Příklad: https://dev.azure.com/fabrikamFiber

  6. Po zobrazení výzvy k zadání typu ověřování stiskněte Enter a zvolte ověřování PAT .

  7. Vložte svůj osobní přístupový token, který jste vytvořili dříve, a stiskněte enter.

  8. Zadejte název fondu agentů a zadejte název agenta.

  9. Ponechte výchozí hodnotu pracovní složky a pak zadejte Y , pokud chcete spustit agenta jako službu.

    Snímek obrazovky znázorňující, jak nastavit agenta na virtuálním počítači Azure

  10. Teď, když je agent připravený začít naslouchat úlohům, nainstalujme Docker na náš virtuální počítač. Spuštěním následujícího příkazu stáhněte Docker.

    Invoke-WebRequest -URI https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe -OutFile <DOWNLOAD_PATH>
    
  11. Přejděte do cesty ke stažení a spuštěním následujícího příkazu nainstalujte a spusťte Docker.

    Start-Process 'Docker%20Desktop%20Installer.exe' -Wait install
    
  12. Teď přejděte zpět do složky agenta a spuštěním souboru cmd spusťte agenta na virtuálním počítači Azure.

    .\run.cmd
    
  13. Váš agent by teď měl být uvedený ve fondu agentů –> Agenti na portálu Azure DevOps.

    Snímek obrazovky znázorňujícího agenta, který je k dispozici na kartě agentů

Nastavení spravované identity

  1. Na webu Azure Portal přejděte na virtuální počítač, který jste vytvořili dříve.

  2. Na levém navigačním panelu vyberte Identitu a pak povolte identitu přiřazenou systémem.

  3. Až budete hotovi, vyberte Uložit a potvrďte svoji volbu.

    Snímek obrazovky znázorňující povolení identity přiřazené systémem

  4. Vyberte přiřazení rolí Azure a pak vyberte Přidat přiřazení role.

  5. V rozevírací nabídce Obor vyberte skupinu prostředků.

  6. Vyberte své předplatné a skupinu prostředků a pak vyberte roli AcrPush.

  7. Opakujte kroky 5 a 6 přidejte roli AcrPull .

    Snímek obrazovky znázorňující, jak nastavit acrpull a nasdílení rolí

Vytvoření připojení služby registru Dockeru

  1. V projektu Azure DevOps vyberte ikonu ikona ozubeného kola ozubeného kola a přejděte do nastavení projektu.

  2. V levém podokně vyberte Připojení služby.

  3. Vyberte Nové připojení služby a pak vyberte Registr Dockeru a pak Další.

  4. Vyberte Azure Container Registry a pak jako typ ověřování vyberte Identitu spravované služby.

  5. Zadejte název předplatného ID předplatného a přihlašovací server registru kontejneru Azure. Vložte ID tenanta přiřazeného systémem virtuálního počítače, které jste vytvořili v předchozím kroku, do textového pole ID tenanta.

  6. Zadejte název připojení ke službě a zaškrtněte políčko Udělit přístup všem kanálům . K výběru této možnosti budete potřebovat roli Správce připojení služby.

  7. Po dokončení vyberte Uložit .

    Snímek obrazovky znázorňující, jak nastavit MSI připojení ke službě registru Dockeru

Sestavení a publikování ve službě Azure Container Registry

  1. V projektu Azure DevOps vyberte Kanály a pak vyberte Vytvořit kanál.

  2. Vyberte službu hostující váš zdrojový kód (Azure Repos, GitHub atd.).

  3. Vyberte úložiště a pak vyberte Počáteční kanál.

  4. Odstraňte výchozí kanál yaml a použijte následující fragment kódu:

    trigger:
    - main
    
    variables:
      dockerRegistryServiceConnection: '<SERVICE_CONNECTION_NAME>'
      imageRepository: '<IMAGE_NAME>'
      dockerfilePath: '$(Build.SourcesDirectory)/app/Dockerfile'
      tag: '$(Build.BuildId)'
    
    stages:
    - stage: Build
      displayName: Build and publish stage
      jobs:
      - job: Build
        displayName: Build job
        pool:
          name: '<YOUR_AGENT_POOL_NAME>'
        steps:
        - task: DockerInstaller@0
          inputs:
            dockerVersion: '17.09.0-ce'
    
        - task: Docker@2
          displayName: Build and publish image to Azure Container Registry
          inputs:
            command: buildAndPush
            containerRegistry: $(dockerRegistryServiceConnection)
            repository: $(imageRepository)
            dockerfile: $(dockerfilePath)
            tags: |
              $(tag)
    
  5. Po dokončení spuštění kanálu můžete ověřit image v Azure. Přejděte do služby Azure Container Registry na webu Azure Portal a pak vyberte Úložiště.

    Snímek obrazovky znázorňující obrázek na webu Azure Portal

Vyčištění prostředků

Pokud nechcete tuto aplikaci dál používat, odstraňte skupinu prostředků, abyste se vyhnuli průběžným poplatkům.

az group delete --name myapp-rg