Rövid útmutató: Tárolórendszerkép létrehozása alkalmazások Azure Pipelines használatával történő üzembe helyezéséhez

Azure DevOps Services

Ez a rövid útmutató bemutatja, hogyan hozhat létre tárolórendszerképet az alkalmazások üzembe helyezéséhez az Azure Pipelines használatával. A rendszerkép létrehozásához mindössze egy Docker-fájlra van szüksége az adattárban. Linux- vagy Windows-tárolókat a folyamatban használt ügynök alapján hozhat létre.

Előfeltételek

A mintaadattár elágazása

A böngészőben nyissa meg az alábbi mintaadattárat, és forkozza el a GitHub-fiókjához.

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

Linux- vagy Windows-rendszerkép létrehozása

  1. Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projektjéhez.

  2. Lépjen a Folyamatok elemre, és válassza az Új folyamat vagy a Folyamat létrehozása lehetőséget, ha a projekt első folyamatát hozza létre.

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

  4. Válassza ki az adattárat, majd válassza a Starter-folyamatot.

    • Ha a rendszer átirányítja a GitHubra a bejelentkezéshez, adja meg a GitHub hitelesítő adatait.
    • Ha átirányítja a GitHubra az Azure Pipelines alkalmazás telepítéséhez, válassza a Jóváhagyás és a telepítés lehetőséget.
  5. Cserélje le a azure-pipelines.yml tartalmát a következő kódra. Attól függően, hogy Linux- vagy Windows-alkalmazást helyez üzembe, ügyeljen arra, hogy az egyik vagy windows-latesta másikra legyen beállítva.vmImageubuntu-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. Ha elkészült, válassza a Mentés és futtatás lehetőséget.

  7. Amikor hozzáadja a azure-pipelines.yml fájlt az adattárhoz, a rendszer egy véglegesítési üzenetet fog kérni. Írjon be egy üzenetet, majd válassza a Mentés és futtatás lehetőséget.

Saját üzemeltetésű ügynökök használatakor győződjön meg arról, hogy a Docker telepítve van az ügynök gazdagépén, és a Docker-motor/démon emelt szintű jogosultságokkal fut.

A rendszerkép létrehozásához a Dockert telepíteni kell az ügynök gazdagépére, a Docker-motornak/démonnak pedig emelt szintű jogosultságokkal kell futnia. Az alábbi lépésekkel hozza létre a folyamatot a YAML-folyamatszerkesztővel.

  1. Nyissa meg a gyűjteményt, és hozzon létre egy projektet.
  2. A projektben válassza a Folyamatok lehetőséget.
  3. Válassza a Folyamat létrehozása lehetőséget.
  4. Válassza a GitHub Enterprise Servert a forráskód helyeként.
  5. Ha még nem tette meg, engedélyezze az Azure Pipelines számára, hogy csatlakozzon a GitHub Enterprise Server-fiókjához.
    1. Válassza Csatlakozás a GitHub Enterprise Serverre.
    2. Adja meg a fiók adatait, majd válassza az Ellenőrzés és mentés lehetőséget.
  6. Válassza ki az adattárat. Ha átirányítja a GitHubra az Azure Pipelines alkalmazás telepítéséhez, válassza a Jóváhagyás és a telepítés lehetőséget.
  7. A folyamat konfigurálásához válassza a Docker-rendszerképsablon létrehozása lehetőséget.
  8. A YAML-folyamatszerkesztőben cserélje le a YAML-fájl tartalmát a következő kódra. Cserélje le a készlet nevét a saját üzemeltetésű ügynököt tartalmazó készlet nevére a Docker-képességre.
# 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. Válassza a Mentés és futtatás lehetőséget.
  2. A Mentés és futtatás lapon válassza a Mentés és futtatás lehetőséget.

A Docker-rendszerképek készítésével kapcsolatos további információkért tekintse meg a mintaalkalmazás által használt Docker-feladatot . A Docker-parancsokat közvetlenül is meghívhatja parancssori feladatokkal.

A tárolólemezképek az ügynökön vannak létrehozva és tárolva. A rendszerképet leküldheti a Google Container Registrybe, a Docker Hubba vagy az Azure Container Registrybe. További információ: Rendszerkép leküldése a Docker Hubba vagy a Google Container Registrybe , vagy rendszerkép leküldése az Azure Container Registrybe.

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

Ha nem tervezi folytatni az alkalmazás használatát, törölje a folyamatot és a kódtárat.

GYIK

Milyen ügynökök használhatók a tárolórendszerképek összeállításához?

  • Linux-tárolórendszerképeket a Microsoft által üzemeltetett Ubuntu-ügynökökkel vagy a Linux platformon alapuló, saját üzemeltetésű ügynökökkel hozhat létre.

  • Windows-tárolórendszerképeket a Microsoft által üzemeltetett Windows-ügynökökkel vagy a Windows platformon alapuló, saját üzemeltetésű ügynökökkel hozhat létre. A Microsoft által üzemeltetett, Windows platformon alapuló ügynökök a Docker-buildekhez szükséges Moby-motorral és -ügyféllel együtt érhetők el.

  • Jelenleg nem használhatja a Microsoft által üzemeltetett macOS-ügynököket tárolólemezképek létrehozására, mert a rendszerképek létrehozásához szükséges Moby-motor nincs előre telepítve ezeken az ügynökökön.

További információért tekintse meg a Microsoft által üzemeltetett ügynökökkel elérhető Windows- és Linux-ügynökkel kapcsolatos lehetőségeket ismertető dokumentációt.

Milyen előre gyorsítótárazott Docker-rendszerképek érhetők el az üzemeltetett ügynökökön?

Annak érdekében, hogy ne kelljen hosszú időközönként Docker-rendszerképeket lekötni a tárolóregisztrációs adatbázisból minden feladathoz, a rendszer előköt néhány gyakran használt lemezképet a Microsoft által üzemeltetett ügynökökre. Az elérhető előre gyorsítótárazott rendszerképek listáját az azure-pipelines-image-generation adattárban elérhető virtuálisgép-rendszerképek mellékelt szoftverébentalálja.

Hogyan állítsa be a BuildKit változót a Docker-buildekhez?

A BuildKit fejlesztéseket vezet be a teljesítmény, a tárolókezelés, a funkciófunkciók és a biztonság terén. A BuildKit jelenleg nem támogatott Windows-gazdagépeken.

Ha a BuildKittel szeretné engedélyezni a Docker-buildeket, állítsa be a DOCKER_BUILDKIT változót.

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

Hogyan használhatok saját üzemeltetésű ügynököt?

A Dockert telepíteni kell, és a motort/démont az ügynök gazdagépén kell futtatni. Ha a Docker nincs telepítve az ügynök gazdagépén, hozzáadhatja a Docker telepítőfeladatot a folyamathoz. A Docker-feladat előtt hozzá kell adnia a Docker Installer-feladatot.

Hogyan hozhatok létre szkriptalapú Docker-buildet a Docker-feladat használata helyett?

Használhatja a build parancsot vagy bármely más Docker-parancsot.

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

Ez a parancs létrehoz egy, a Docker-feladattal készült képnek megfelelő képet. A Docker-feladat belsőleg meghívja a Docker bináris fájlt egy szkripten, és összefűz néhány további parancsot, hogy több előnyt biztosítson. További információ a Docker-feladatról.

Újra felhasználhatom a réteg gyorsítótárazását az Azure Pipelines-buildek során?

Ha Microsoft által üzemeltetett ügynököket használ, a rendszer minden feladatot egy újonnan kiépített virtuális gépre küld az Azure-pipelines-image-generation adattársablonokból létrehozott rendszerkép alapján. Ezek a virtuális gépek a feladat befejezése után törlődnek. Ez a rövid élettartam megakadályozza ezeknek a virtuális gépeknek az újbóli felhasználását a későbbi feladatokhoz és a gyorsítótárazott Docker-rétegek újrafelhasználásához. Áthidaló megoldásként beállíthat egy többfázisú buildet, amely két lemezképet hoz létre, és egy korai szakaszban leküldi őket egy képregisztrációs adatbázisba. Ezután megadhatja a Dockernek, hogy ezeket a képeket gyorsítótárforrásként használja az --cache-from argumentummal.

Ha saját üzemeltetésű ügynököket használ, áthidaló megoldások nélkül gyorsítótárazhatja a Docker-rétegeket, mivel a rövid élettartam-probléma nem vonatkozik ezekre az ügynökökre.

Hogyan állíthatok össze Linux-tárolórendszerképeket az x64-től eltérő architektúrákhoz?

A Microsoft által üzemeltetett Linux-ügynökök használatakor az x64 architektúrához hoz létre Linux-tárolórendszerképeket. Ha más architektúrákhoz (például x86 vagy ARM-processzor) szeretne rendszerképeket létrehozni, gépemulátort használhat, mint például a QEMU.

Az alábbi lépések bemutatják, hogyan hozhat létre ARM processzortároló lemezképet a QEMU használatával:

  1. A Dockerfile létrehozása a célarchitektúra alapján:

    FROM arm64v8/alpine:latest
    
  2. A rendszerkép létrehozása előtt futtassa a következő szkriptet a feladatban:

    # 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
    

További információ: qemu-user-static a GitHubon.

Hogyan teszteket futtatni, és teszteredményeket közzétenni tárolóalapú alkalmazásokhoz?

A tárolóalapú alkalmazások tesztelésére és az eredményként kapott teszteredmények közzétételére vonatkozó különböző lehetőségekért lásd : Teszteredmények közzététele feladat.

Következő lépések

A tárolórendszerkép létrehozása után küldje le a rendszerképet az Azure Container Registrybe, a Docker Hubba vagy a Google Container Registrybe. Ha meg szeretné tudni, hogyan küldhet le egy lemezképet egy tárolóregisztrációs adatbázisba, folytassa az alábbi cikkek egyikével: