Použití Azure Pipelines k vytváření a nabízení imagí kontejnerů do registrů
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Tento článek vás provede nastavením a konfigurací ve službě Azure Pipelines k sestavení a nasdílení image Dockeru do služby Azure Container Registry a Docker Hubu. Kromě toho podrobně popisuje použití zabezpečeného System.AccessToken
ověřování v rámci kanálu.
Tento článek vás provede nastavením a konfigurací pro použití Azure Pipelines k sestavení a nasdílení image Dockeru do Docker Hubu. Kromě toho podrobně popisuje použití zabezpečeného System.AccessToken
ověřování v rámci kanálu.
Naučíte se vytvořit kanál YAML pro sestavení a nasdílení image Dockeru do registru kontejneru pomocí úlohy Docker@2.
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. |
Centrum Dockeru | – účet Docker Hub. – Úložiště obrázků Docker Hub. |
- požadavky projektu : projekt Azure DevOps.
-
Oprávnění:
- Být členem skupiny správci projektu .
- Role správce pro připojení služeb v projektu Azure DevOps.
- Předplatná:
- Účet GitHubu. Pokud ho nemáte, můžete si ho zdarma vytvořit na GitHubu.
- Účet Docker Hubu: Potřebujete účet Docker Hubu. Pokud ho nemáte, můžete si ho zdarma vytvořit v Docker Hubu.
- úložiště : úložiště GitHub se souborem Dockerfile. Pokud ho nemáte, můžete použít ukázkové úložiště
- Připojení ke službě: : připojení ke službě GitHub Enterprise Server. Pokud ho nemáte, můžete ho vytvořit v nastavení projektu Azure DevOps. Další informace o vytvoření připojení služby naleznete v tématu Připojení služby.
- Container registry: A (Docker Hub úložiště kontejnerů
- Požadavky na software: Musí být nainstalovaný Docker a modul Dockeru spuštěný se zvýšenými oprávněními na vašem agentu v místním prostředí.
Vytvoření připojení 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. V nastavení projektu Azure DevOps přejděte na připojení služeb a vytvořte nové připojení služby registru Dockeru.
V části Připojení služby registru Dockeru zvolte možnost Docker Hub a zadejte uživatelské jméno a heslo, abyste vytvořili připojení služby Dockeru.
Vytvořte YAML pipeline pro sestavení a odeslání image Dockeru
Ú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ích kroků vytvořte kanál YAML, který používá úlohu Docker@2 k sestavení a nasdílení image.
Přejděte do projektu Azure DevOps a v nabídce vlevo vyberte Pipelines.
Vyberte Nové potrubí.
Vyberte umístění zdrojového úložiště.
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.
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 connection>' repository: $(repositoryName) command: 'buildAndPush' Dockerfile: '**/Dockerfile'
Upravte soubor YAML kanálu následujícím způsobem:
Na základě toho, jestli nasazujete aplikaci pro Linux nebo Windows, nezapomeňte
vmImage
nastavit buď neboubuntu-latest
windows-latest
.Pokud používáte agenta v místním prostředí, nastavte
vmImage
název fondu, který obsahuje agenta v místním prostředí s funkcí Dockeru. Můžete přidatdemands:
vlastnost, abyste zajistili, že je vybraný agent s nainstalovaným Dockerem. Příklad:pool: name: <your agent pool> demands: docker
Nahraďte
<docker connection>
názvem připojení služby Docker, které jste vytvořili dříve.Nahraďte
<target repository name>
názvem úložiště v registru kontejneru, do kterého chcete vložit image. Například<your-docker-hub-username>/<repository-name>
.
Až budete hotovi, vyberte Uložit a spustit.
Když soubor azure-pipelines.yml uložíte do úložiště, zobrazí se výzva k přidání potvrzovací zprávy. Zadejte zprávu a pak vyberte Uložit a spustit.
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.
Aby bylo možné sestavit image, musí být Docker nainstalovaný na hostiteli agenta a modul/proces démon Dockeru musí být spuštěn se zvýšenými oprávněními.
Pomocí následujících kroků vytvořte kanál pomocí editoru kanálů YAML.
Přejděte do kolekce a vytvořte projekt.
V projektu vyberte Kanály.
Vyberte Vytvořit kanál.
Jako umístění zdrojového kódu vyberte GitHub Enterprise Server .
Pokud jste to ještě neudělali, povolte Azure Pipelines připojení k vašemu účtu GitHub Enterprise Serveru.
- Vyberte Připojit k Serveru GitHub Enterprise.
- Zadejte podrobnosti o svém účtu a pak vyberte Ověřit a uložit.
Vyberte úložiště. Pokud jste přesměrováni na GitHub, abyste nainstalovali aplikaci Azure Pipelines, vyberte Schválit a nainstalovat.
Pokud chcete nakonfigurovat kanál, vyberte šablonu sestavení image Dockeru.
V editoru kanálů YAML nahraďte obsah souboru YAML následujícím kódem:
trigger: - main pool: name: default demands: docker variables: repositoryName: '<target repository name>' steps: - task: Docker@2 inputs: containerRegistry: '<docker connection>' repository: $(repositoryName) command: 'buildAndPush' Dockerfile: '**/Dockerfile'
Upravte soubor YAML kanálu následujícím způsobem:
- Nahraďte název fondu názvem fondu, který obsahuje vašeho agenta v místním prostředí, funkcí Dockeru.
- Nahraďte
<target repository name>
názvem úložiště v registru kontejneru, do kterého chcete vložit image. Například<your-docker-hub-username>/<repository-name>
. - Nahraďte
<docker connection>
názvem připojení služby Docker, které jste vytvořili dříve.
Zvolte Uložit a Spustit.
Na stránce Uložit a spustit vyberte Uložit a spustit znovu.
Můžete sledovat spuštění kanálu a zobrazit protokoly, abyste viděli, jak se image Dockeru sestavuje a odesílá do registru kontejneru.
Použití System.AccessTokenu pro ověřování v úloze Docker@2
Pomocí registru kontejneru, který poskytuje Azure DevOps, můžete provést ověření pomocí registru kontejneru System.AccessToken
. Tento token umožňuje zabezpečený přístup k prostředkům v rámci kanálu bez vystavení citlivých přihlašovacích údajů.
V následujícím příkladu kanálu YAML se úloha Docker@2 používá k přihlášení do registru kontejneru a nasdílení image Dockeru. Nastaví System.AccessToken
se jako proměnná prostředí pro ověření příkazů Dockeru.
Nahraďte <docker connection>
názvem připojení služby registru Dockeru.
Nahraďte <your repository>
názvem vašeho úložiště Dockeru.
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
variables:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
steps:
- task: Docker@2
inputs:
command: login
containerRegistry: '<docker connection>'
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
- task: Docker@2
inputs:
command: buildAndPush
repository: '<your repository>'
dockerfile: '**/Dockerfile'
tags: |
$(Build.BuildId)
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)