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
Účet GitHub. zaregistrujte se zdarma, pokud ho ještě nemáte.
Organizace Azure DevOps
Projekt Azure DevOps.
Role správce pro připojení služeb v projektu Azure DevOps.
Účet Azure s aktivním předplatným. Pokud ho ještě nemáte, zaregistrujte se zdarma .
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
Přejděte na Azure Portal.
Na levém navigačním panelu vyberte Vytvořit prostředek a pak vyberte Kontejnery a Container Registry.
Vyberte své předplatné a pak vyberte skupinu prostředků nebo vytvořte novou.
Zadejte název registru kontejneru. Název registru musí být jedinečný v rámci Azure a musí obsahovat alespoň 5 znaků.
Vyberte upřednostňované umístění a skladovou položku a pak vyberte Zkontrolovat a vytvořit.
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
Přejděte na Azure Portal.
Na levém navigačním panelu vyberte Vytvořit prostředek a pak vyberte Virtuální počítač ->Vytvořit.
Vyberte své předplatné a pak vyberte skupinu prostředků, kterou jste použili k vytvoření registru kontejneru.
Pojmenujte virtuální počítač a zvolte image.
Zadejte svoje uživatelské jméno a heslo a pak vyberte Zkontrolovat a vytvořit.
Zkontrolujte nastavení a pak vyberte Vytvořit , až budete hotovi.
Až se nasazení dokončí, vyberte Přejít k prostředku.
Vytvoření fondu agentů
V projektu Azure DevOps vyberte ikonu ozubeného kola a přejděte do nastavení projektu.
Vyberte fondy agentů a pak vyberte Přidat fond.
Vyberte Nový a pak v rozevírací nabídce Typ fondu vyberte Možnost Vlastní hostování.
Pojmenujte fond a zaškrtněte políčko Udělit přístup všem kanálům .
Až budete hotovi, vyberte Vytvořit .
Teď vyberte fond, který jste právě vytvořili, a pak vyberte Nový agent.
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.
Vytvoření osobního přístupového tokenu (PAT)
V projektu Azure DevOps vyberte Uživatelská nastavení a pak vyberte Osobní přístupové tokeny.
Vyberte Nový token a vytvořte nový osobní přístupový token.
Zadejte název pat a zvolte datum vypršení platnosti.
Vyberte Možnost Vlastní definované v oborech a pak vyberte Zobrazit všechny obory.
Vyberte Fondy agentů ->Číst a spravovat a Skupiny nasazení ->Číst a spravovat.
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í
Na webu Azure Portal se připojte k virtuálnímu počítači.
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
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")
Spuštěním následujícího příkazu spusťte konfiguraci agenta.
.\config.cmd
Po zobrazení výzvy k zadání vstupu zadejte adresu URL serveru. Příklad: https://dev.azure.com/fabrikamFiber
Po zobrazení výzvy k zadání typu ověřování stiskněte Enter a zvolte ověřování PAT .
Vložte svůj osobní přístupový token, který jste vytvořili dříve, a stiskněte enter.
Zadejte název fondu agentů a zadejte název agenta.
Ponechte výchozí hodnotu pracovní složky a pak zadejte Y , pokud chcete spustit agenta jako službu.
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>
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
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
Váš agent by teď měl být uvedený ve fondu agentů –> Agenti na portálu Azure DevOps.
Nastavení spravované identity
Na webu Azure Portal přejděte na virtuální počítač, který jste vytvořili dříve.
Na levém navigačním panelu vyberte Identitu a pak povolte identitu přiřazenou systémem.
Až budete hotovi, vyberte Uložit a potvrďte svoji volbu.
Vyberte přiřazení rolí Azure a pak vyberte Přidat přiřazení role.
V rozevírací nabídce Obor vyberte skupinu prostředků.
Vyberte své předplatné a skupinu prostředků a pak vyberte roli AcrPush.
Opakujte kroky 5 a 6 přidejte roli AcrPull .
Vytvoření připojení služby registru Dockeru
V projektu Azure DevOps vyberte ikonu ozubeného kola a přejděte do nastavení projektu.
V levém podokně vyberte Připojení služby.
Vyberte Nové připojení služby a pak vyberte Registr Dockeru a pak Další.
Vyberte Azure Container Registry a pak jako typ ověřování vyberte Identitu spravované služby.
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.
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.
Po dokončení vyberte Uložit .
Sestavení a publikování ve službě Azure Container Registry
V projektu Azure DevOps vyberte Kanály a pak vyberte Vytvořit kanál.
Vyberte službu hostující váš zdrojový kód (Azure Repos, GitHub atd.).
Vyberte úložiště a pak vyberte Počáteční kanál.
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)
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ě.
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