Použití Docker YAML k sestavení a nasdílení imagí Dockeru do služby Azure Container Registry
Služby Azure DevOps
V tomto kurzu se dozvíte, jak pomocí kanálu založeného na šabloně Dockeru Azure Pipelines sestavit kontejnerizovanou aplikaci a odeslat ji do služby Azure Container Registry. Šablona nastaví kanál YAML kontinuální integrace, kde nové úložiště kódu aktivuje kanál pro sestavení a publikování aktualizovaných imagí Dockeru do registru.
Kanál šablony kontejneru Dockeru používá agenty hostované Microsoftem a vytvoří připojení služby založené na instančním objektu ke službě Azure Container Registry. Kanál, který provádí podobný proces pomocí agentů v místním prostředí a připojení služby, které vytvoříte sami, najdete v tématu Sestavení a nasdílení imagí Dockeru do služby Azure Container Registry.
Požadavky
Účet Azure, ve kterém máte oprávnění vytvářet a konfigurovat prostředky. Pokud nemáte účet Azure, zaregistrujte si bezplatný účet.
Organizace a projekt Azure DevOps, kde máte oprávnění vytvářet kanály a nasazovat aplikace. Pokud chcete vytvořit organizaci nebo projekt, přečtěte si téma Vytvoření nové organizace nebo vytvoření projektu v Azure DevOps.
Účet GitHub.
Důležité
Při použití GitHubu v následujících postupech se může zobrazit výzva k vytvoření připojení ke službě GitHub, přihlášení k GitHubu, ověření v organizacích GitHubu, instalace Azure Pipelines nebo autorizace Azure Pipelines. Dokončete proces podle pokynů na obrazovce. Další informace najdete v tématu Přístup k úložištím GitHub.
Získání ukázkové aplikace
Na GitHubu naklonujte fork nebo naklonujte ukázkové úložiště Dockeru a Kubernetes Node.JS aplikace .
Vytvoření registru kontejneru
Na webu Azure Portal se přihlaste ke službě Azure Cloud Shell výběrem ikony v horním řádku nabídek. Nezapomeňte použít prostředí Bash .
Spuštěním následujících příkazů v Cloud Shellu vytvořte skupinu prostředků a registr kontejnerů Azure pomocí Azure CLI. Název služby Container Registry musí být malými písmeny.
az group create --name myapp-rg --location eastus az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
Pokud chcete nasadit image Dockeru do registru kontejneru Azure, musíte pro registr povolit uživatelský účet správce, který je ve výchozím nastavení zakázaný. Pokud chcete povolit uživatele správce pro váš registr, použijte parametr
--admin-enabled
s příkazemaz acr update
. Další informace a pokyny najdete v tématu Účet správce.az acr update -n <acrName> --admin-enabled true
Případně můžete pomocí uživatelského rozhraní webu Azure Portal vytvořit registr kontejneru Azure. Pokyny najdete v tématu Vytvoření registru kontejneru. Po vytvoření registru povolte účet správce ve vlastnostech .
Vytvoření kanálu
V projektu Azure DevOps vyberte Kanály>Nový kanál nebo Vytvořte kanál, pokud je tento kanál v projektu prvním kanálem.
Jako umístění zdrojového kódu vyberte GitHub .
Na obrazovce Vybrat úložiště vyberte úložiště s ukázkovým kódem.
Na obrazovce Konfigurace kanálu vyberte Docker: Sestavení a nasdílení image do kanálu Služby Azure Container Registry.
Na obrazovce Dockeru vyberte své předplatné Azure a pak vyberte Pokračovat.
V rozevírací nabídce vyberte registr kontejneru, zadejte název image a pak vyberte Ověřit a nakonfigurovat.
Azure Pipelines vygeneruje azure-pipelines.yml soubor, který definuje váš kanál.
Zkontrolujte kód v azure-pipelines.yml a pak vyberte Uložit a spustit.
Volitelně můžete upravit zprávu Potvrzení a zadat popis. Potom vyberte Uložit a spusťte znovu, aby se soubor azure-pipelines.yml uložil do úložiště a spustil sestavení.
Na stránce spuštění sestavení se zobrazují podrobnosti o sestavení a průběh. Pokud chcete sledovat kanál v akci, vyberte Možnost Sestavit v části Úlohy.
Podrobnosti kanálu
Kanál se vygeneruje ze šablony kontejneru Dockeru. Fáze sestavení používá úlohu Dockeru v2 k sestavení a nasdílení image Dockeru do registru kontejneru.
Úloha Dockeru používá připojení služby registru Dockeru s ověřováním instančního objektu, aby váš kanál mohl odesílat image do registru kontejneru. Šablona kontejneru Dockeru vygeneruje toto připojení služby při vytváření kanálu.
- stage: Build
displayName: Build and push stage
jobs:
- job: Build
displayName: Build job
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)
Vyčištění prostředků
Až dokončíte používání prostředků, které jste vytvořili v tomto kurzu, můžete je odstranit, abyste se vyhnuli dalším poplatkům. Spuštěním následujícího příkazu Cloud Shellu odstraňte skupinu prostředků a všechny prostředky v ní.
az group delete --name myapp-rg