Rychlý start: Sestavení image kontejneru pro nasazení aplikací pomocí Azure Pipelines

Služby Azure DevOps

V tomto rychlém startu se dozvíte, jak sestavit image kontejneru pro nasazení aplikace pomocí Azure Pipelines. K sestavení této image potřebujete jen soubor Dockerfile ve vašem úložišti. Kontejnery Linuxu nebo Windows můžete vytvářet na základě agenta, kterého používáte ve svém kanálu.

Požadavky

Rozvětvujte ukázkové úložiště.

V prohlížeči přejděte do následujícího ukázkového úložiště a rozvětvte ho do svého účtu GitHub.

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

Vytvoření image Linuxu nebo Windows

  1. Přihlaste se ke své organizaci Azure DevOps a přejděte do svého projektu.

  2. Přejděte na Kanály a vyberte Nový kanál nebo Vytvořit kanál , pokud vytváříte první kanál v projektu.

  3. Jako umístění zdrojového kódu vyberte GitHub .

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

    • 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.
  5. Obsah azure-pipelines.yml nahraďte následujícím kódem. Na základě toho, jestli nasazujete aplikaci pro Linux nebo Windows, nezapomeňte vmImage nastavit buď nebo ubuntu-latestwindows-latest.

     trigger:
     - main
    
     pool:
       vmImage: 'ubuntu-latest' 
    
     variables:
       imageName: 'pipelines-javascript-docker'
    
     steps:
     - task: Docker@2
       displayName: Build an image
       inputs:
         repository: $(imageName)
         command: build
         Dockerfile: app/Dockerfile
    
  6. Až budete hotovi, vyberte Uložit a spustit.

  7. Když do úložiště přidáte soubor azure-pipelines.yml , 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.

  1. Přejděte do kolekce a vytvořte projekt.
  2. V projektu vyberte Kanály.
  3. Vyberte Vytvořit kanál.
  4. Jako umístění zdrojového kódu vyberte GitHub Enterprise Server .
  5. Pokud jste to ještě neudělali, povolte Azure Pipelines připojení k vašemu účtu GitHub Enterprise Serveru.
    1. Vyberte Připojení na GitHub Enterprise Server.
    2. Zadejte podrobnosti o svém účtu a pak vyberte Ověřit a uložit.
  6. Vyberte úložiště. Pokud jste přesměrováni na GitHub, abyste nainstalovali aplikaci Azure Pipelines, vyberte Schválit a nainstalovat.
  7. Pokud chcete nakonfigurovat kanál, vyberte šablonu sestavení image Dockeru.
  8. V editoru kanálů YAML nahraďte obsah souboru YAML následujícím kódem. Nahraďte název fondu názvem fondu, který obsahuje vašeho agenta v místním prostředí, funkcí Dockeru.
# Docker
# Build a Docker image
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker

trigger:
- main

pool:
  name: default
  demands: docker

variables:
  imageName: 'pipelines-javascript-docker'

steps:
 - task: Docker@2
   displayName: Build an image
   inputs:
     repository: $(imageName)
     command: build
     Dockerfile: '$(Build.SourcesDirectory)/app/Dockerfile'

  1. Zvolte Uložit a Spustit.
  2. Na stránce Uložit a spustit vyberte Uložit a spustit znovu.

Další informace o vytváření imagí Dockeru najdete v úloze Dockeru, kterou tato ukázková aplikace používá. Příkazy Dockeru můžete také přímo vyvolat pomocí úlohy příkazového řádku.

Image kontejneru jsou vytvořené a uložené v agentu. Image můžete odeslat do služby Google Container Registry, Docker Hub nebo Azure Container Registry. Další informace najdete v tématu Nahrání image do Docker Hubu nebo Služby Google Container Registry nebo nahrání image do služby Azure Container Registry.

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

Pokud nechcete tuto aplikaci dál používat, odstraňte svůj kanál a úložiště kódu.

Často kladené dotazy

Jaké agenty můžu použít k sestavení imagí kontejnerů?

  • Image kontejnerů pro Linux můžete vytvářet pomocí agentů Ubuntu hostovaných Microsoftem nebo agentů v místním prostředí založených na platformě Linux.

  • Image kontejnerů pro Windows můžete vytvářet pomocí agentů Windows hostovaných Microsoftem nebo agentů v místním prostředí založených na platformě Windows. Všichni agenti na platformě Windows hostovaní Microsoftem jsou dodáváni s modulem Moby a klientem potřebným pro sestavení Dockeru.

  • V současné době nemůžete k sestavení imagí kontejnerů použít agenty macOS hostované Microsoftem, protože modul Moby potřebný k sestavení imagí není na těchto agentech předinstalovaný.

Další informace najdete v tématu věnovaném možnostem agenta Windows a Linux, které jsou dostupné u agentů hostovaných Microsoftem.

Jaké image Dockeru jsou k dispozici v hostovaných agentech?

Aby se zabránilo dlouhému intervalu načítání imagí Dockeru pro každou úlohu z registru kontejneru, jsou některé běžně používané image před mezipaměti na agentech hostovaných Microsoftem. Seznam dostupných předk mezipaměti imagí najdete v části Zahrnutý software pro dostupné image virtuálních počítačů v úložišti generování imagí azure-pipelines-image.

Návody nastavit proměnnou BuildKit pro moje buildy Dockeru?

BuildKit zavádí vylepšení sestavení z hlediska výkonu, správy úložiště, funkcí a zabezpečení. BuildKit se v současné době nepodporuje na hostitelích s Windows.

Pokud chcete povolit sestavení Dockeru pomocí BuildKitu , nastavte DOCKER_BUILDKIT proměnnou.

trigger:
- main
   
pool:
  vmImage: 'ubuntu-latest'
   

variables:
  imageName: 'pipelines-javascript-docker'
  DOCKER_BUILDKIT: 1
    
steps:
- task: Docker@2
  displayName: Build an image
  inputs:
    repository: $(imageName)
    command: build
    Dockerfile: app/Dockerfile

Jak můžu použít agenta v místním prostředí?

Docker musí být nainstalovaný a modul nebo démon spuštěný na hostiteli agenta. Pokud do hostitele agenta není nainstalovaný Docker, můžete do kanálu přidat úlohu instalačního programu Dockeru. Před úlohu Dockeru musíte přidat úlohu instalačního programu Dockeru.

Jak můžu místo úlohy Dockeru vytvořit sestavení Dockeru založené na skriptu?

Můžete použít build příkaz nebo jakýkoli jiný příkaz Dockeru.

docker build -f Dockerfile -t foobar.azurecr.io/hello:world .

Tento příkaz vytvoří image ekvivalentní jedné vytvořené pomocí úlohy Dockeru. Úloha Dockeru interně volá binární soubor Dockeru ve skriptu a spojuje několik dalších příkazů, které poskytují několik dalších výhod. Přečtěte si další informace o úloze Dockeru.

Můžu opakovaně používat ukládání vrstvy do mezipaměti během sestavování v Azure Pipelines?

Pokud používáte agenty hostované Microsoftem, každá úloha se odešle na nově zřízený virtuální počítač na základě image vygenerované ze šablon úložiště azure-pipelines-image-generation. Tyto virtuální počítače se po dokončení úlohy vyčistí. Tato dočasné životnost zabraňuje opakovanému použití těchto virtuálních počítačů pro následné úlohy a opětovnému použití vrstev Dockeru uložených v mezipaměti. Jako alternativní řešení můžete nastavit vícefázové sestavení, které vytvoří dvě image a nasdílí je do registru imagí v rané fázi. Pak můžete Dockeru říct, aby tyto image používal jako zdroj mezipaměti s argumentem --cache-from .

Pokud používáte agenty v místním prostředí, můžete do mezipaměti ukládat vrstvy Dockeru bez jakýchkoli alternativních řešení, protože dočasný problém s životností se na tyto agenty nevztahuje.

Jak sestavím image kontejneru Linuxu pro jiné architektury než x64?

Když používáte agenty Linuxu hostované Microsoftem, vytváříte image kontejnerů Linuxu pro architekturu x64. K vytváření imagí pro jiné architektury, jako jsou procesory x86 nebo ARM, můžete použít emulátor počítače, jako je QEMU.

Následující kroky ukazují, jak vytvořit image kontejneru procesoru ARM pomocí QEMU:

  1. Vytvořte soubor Dockerfile se základní imagí, která odpovídá cílové architektuře:

    FROM arm64v8/alpine:latest
    
  2. Před sestavením image spusťte v úloze následující skript:

    # register QEMU binary - this can be done by running the following image
    docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
    # build your image
    

Další informace najdete v tématu qemu-user-static na GitHubu.

Návody spouštět testy a publikovat výsledky testů pro kontejnerizované aplikace?

Různé možnosti testování kontejnerizovaných aplikací a publikování výsledných výsledků testů najdete v tématu Publikování výsledků testu.

Další kroky

Po sestavení image kontejneru odešlete image do služby Azure Container Registry, Docker Hubu nebo registru kontejneru Google. Pokud chcete zjistit, jak odeslat image do registru kontejneru, pokračujte některým z následujících článků: