Megosztás a következőn keresztül:


Docker-rendszerképek létrehozása és leküldése az Azure Container Registrybe a Docker YAML használatával

Azure DevOps Services

Ez az oktatóanyag bemutatja, hogyan használhat egy Azure Pipelines Docker-sablonon alapuló folyamatot egy tárolóalapú alkalmazás létrehozásához és az Azure Container Registrybe való leküldéséhez. A sablon beállít egy folyamatos integrációs YAML-folyamatot, amelyben az új kódtár módosításai aktiválják a folyamatot a frissített Docker-rendszerképek beállításjegyzékben való létrehozásához és közzétételéhez.

A Docker-tárolósablon-folyamat a Microsoft által üzemeltetett ügynököket használja, és létrehoz egy egyszerű szolgáltatáskapcsolatot az Azure Container Registryhez. A saját üzemeltetésű ügynökökkel és saját maga létrehozott szolgáltatáskapcsolattal hasonló folyamatot használó folyamatokért lásd : Docker-rendszerképek létrehozása és leküldése az Azure Container Registrybe.

Előfeltételek

  • Egy Azure-fiók, ahol engedéllyel rendelkezik az erőforrások létrehozásához és konfigurálásához. Ha nem rendelkezik Azure-fiókkal, regisztráljon egy ingyenes fiókra.

  • Egy Azure DevOps-szervezet és -projekt, amelyben engedéllyel rendelkezik folyamatok létrehozására és alkalmazások üzembe helyezésére. Szervezet vagy projekt létrehozásához lásd : Új szervezet létrehozása vagy Projekt létrehozása az Azure DevOpsban.

  • Egy GitHub-fiók.

    Fontos

    Ha a GitHubot a következő eljárásokban használja, előfordulhat, hogy a rendszer kérni fogja, hogy hozzon létre egy GitHub-szolgáltatáskapcsolatot, jelentkezzen be a GitHubba, hitelesítse magát a GitHub-szervezeteknél, telepítse az Azure Pipelinest, vagy engedélyezze az Azure Pipelinest. A folyamat befejezéséhez kövesse a képernyőn megjelenő utasításokat. További információ: Access to GitHub-adattárak.

Mintaalkalmazás letöltése

A GitHubon elágaztathatja vagy klónozhatja a Docker- és Kubernetes-mintaadattárat Node.JS alkalmazástárat .

Container Registry létrehozása

  1. Az Azure Portalon jelentkezzen be az Azure Cloud Shellbe a felső menüsáv ikonjának kiválasztásával. Ügyeljen arra, hogy a Bash-rendszerhéjat használja.

    Azure Cloud Shell gomb

  2. A Cloud Shellben futtassa az alábbi parancsokat egy erőforráscsoport és egy Azure-tárolóregisztrációs adatbázis létrehozásához az Azure CLI használatával. A Tárolóregisztrációs adatbázis nevének kisbetűsnek kell lennie.

    az group create --name myapp-rg --location eastus
    az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
    
  3. Ha Docker-rendszerképet szeretne üzembe helyezni az Azure-tárolóregisztrációs adatbázisban, engedélyeznie kell a beállításjegyzék rendszergazdai felhasználói fiókját, amely alapértelmezés szerint le van tiltva. A beállításjegyzék rendszergazdai felhasználójának engedélyezéséhez használja a --admin-enabled paramétert a az acr update paranccsal. További információkért és utasításokért lásd: Rendszergazdai fiók.

    az acr update -n <acrName> --admin-enabled true
    

Másik lehetőségként az Azure Portal felhasználói felületét is használhatja az Azure Container Registry létrehozásához. Útmutatásért lásd: Tárolóregisztrációs adatbázis létrehozása. A beállításjegyzék létrehozása után engedélyezze a rendszergazdai fiókot a Tulajdonságok területen.

A folyamat létrehozása

  1. Az Azure DevOps-projektben válassza a Pipelines>New (Folyamatok új) vagy a Create pipeline (Folyamat létrehozása) lehetőséget, ha ez a folyamat az első a projektben.

    Képernyőkép az Új folyamat létrehozása képernyőről.

  2. Válassza a GitHubot a forráskód helyeként.

  3. Az Adattár kiválasztása képernyőn válassza ki a mintakódtárat.

  4. A folyamat konfigurálása képernyőn válassza a Docker: Rendszerkép létrehozása és leküldése az Azure Container Registry-folyamatba.

    Képernyőkép a Docker buildelési és leküldéses rendszerképének az Azure Container Registry-folyamat kiválasztásáról.

  5. A Docker képernyőjén válassza ki az Azure-előfizetését, majd válassza a Folytatás lehetőséget.

  6. Válassza ki a tárolóregisztrációs adatbázist a legördülő menüből, adjon meg egy képnevet, majd válassza az Ellenőrzés és konfigurálás lehetőséget.

    Képernyőkép arról, hogyan konfigurálhat egy Docker-folyamatot egy rendszerkép létrehozásához és közzétételéhez az Azure Container Registryben.

    Az Azure Pipelines létrehoz egy azure-pipelines.yml fájlt, amely meghatározza a folyamatot.

  7. Tekintse át a kódot azure-pipelines.yml, majd válassza a Mentés és futtatás lehetőséget.

    Képernyőkép egy új YAML-folyamat Mentés és futtatás gombjáról.

  8. Igény szerint szerkessze a véglegesítési üzenetet , és adjon meg egy leírást. Ezután válassza a Mentés lehetőséget, és futtassa újra a azure-pipelines.yml fájlt az adattárban való véglegesítéséhez, és indítsa el a buildet.

  9. A buildelési oldal a build részleteit és a folyamat előrehaladását mutatja. A folyamat működés közbeni megtekintéséhez válassza a Build (Build) lehetőséget a Feladatok területen.

    Képernyőkép a feladatfuttatási lapon található Build hivatkozásról.

Folyamat részletei

A folyamat a Docker-tárolósablonból jön létre. A buildelési fázis a Docker v2 feladatával hozza létre és küldje le a Docker-rendszerképet a tárolóregisztrációs adatbázisba.

A Docker-feladat egy Docker-beállításjegyzék-szolgáltatáskapcsolatot használ szolgáltatásnév-hitelesítéssel, hogy a folyamat lemezképeket küldjön a tárolóregisztrációs adatbázisba. A Docker-tárolósablon ezt a szolgáltatáskapcsolatot hozza létre a folyamat létrehozásakor.

- 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)

Az erőforrások eltávolítása

Ha befejezte az oktatóanyagban létrehozott erőforrások használatát, törölheti őket, hogy elkerülje a további költségek felmerülését. Futtassa a következő Cloud Shell-parancsot az erőforráscsoport és a benne lévő összes erőforrás törléséhez.

az group delete --name myapp-rg