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
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Egy GitHub-fiók. Ha nincs fiókja, ingyenesen regisztrálhat egyet.
- Egy Azure-folyamat Windows- vagy Linux-ügynöke, amelyen telepítve van a Docker.
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Egy GitHub-fiók. Ha nincs fiókja, ingyenesen regisztrálhat egyet.
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
Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projektjéhez.
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.
Válassza a GitHubot a forráskód helyeként.
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.
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-latest
a másikra legyen beállítva.vmImage
ubuntu-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
Ha elkészült, válassza a Mentés és futtatás lehetőséget.
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.
- Nyissa meg a gyűjteményt, és hozzon létre egy projektet.
- A projektben válassza a Folyamatok lehetőséget.
- Válassza a Folyamat létrehozása lehetőséget.
- Válassza a GitHub Enterprise Servert a forráskód helyeként.
- Ha még nem tette meg, engedélyezze az Azure Pipelines számára, hogy csatlakozzon a GitHub Enterprise Server-fiókjához.
- Válassza a Csatlakozás a GitHub Enterprise Serverhez lehetőséget.
- Adja meg a fiók adatait, majd válassza az Ellenőrzés és mentés lehetőséget.
- 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.
- A folyamat konfigurálásához válassza a Docker-rendszerképsablon létrehozása lehetőséget.
- 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'
- Válassza a Mentés és futtatás lehetőséget.
- 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.
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:
A Dockerfile létrehozása a célarchitektúra alapján:
FROM arm64v8/alpine:latest
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: