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.
V projektu Azure DevOps vyberte Nastavení projektu>Připojení služby.
Vyberte Nové připojení služby a Docker registr.
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. Vyberte Ověřit a uložit.
Vytvoření kanálu pro sestavení a nasdílení image Dockeru
Ú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.
V projektu Azure DevOps vyberte Pipelines a New pipeline.
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.
Vyberte úložiště.
Výběrem šablony úvodního kanálu vytvořte základní konfiguraci kanálu.
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'
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.
- Nahraďte
Až budete hotovi, vyberte Uložit a spustit>Uložit a spustit.
Vyberte Úloha, abyste zobrazili protokoly a ověřili úspěšné spuštění kanálu.
Přejděte do projektu Azure DevOps a v nabídce vlevo vyberte Pipelines.
Vyberte Nové potrubí.
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.
Vyberte Dockeru – Sestavte a nasdílejte image do šablony služby Azure Container Registry.
Vyberte své předplatné Azure a Pokračovat.
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)
Vyberte Uložit a spusťte a Uložit a spusťte znovu.
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.