Gyakorlat – Az alkalmazás lemezképének létrehozása
Ebben a leckében az alkalmazás lemezképének létrehozásával és az Azure Container Registrybe való leküldésével hozza létre a GitHub Actions előkészítési folyamatát.
Az alábbi képen az Ön által tervezett CI/CD-folyamat látható:
Ebben a gyakorlatban a következő lépésekkel hozza létre az előkészítési folyamatot:
- Hozza létre a GitHub Actions munkafolyamatot.
- Hozza létre az
on push
eseményindítót. - Az alkalmazás lemezképének létrehozása és leküldése.
- Titkos kulcsok beállítása.
- Futtassa a feladatot.
A GitHub Actions munkafolyamatának létrehozása
A GitHub-munkafolyamatok feladatokra, a feladatok pedig lépésekre vannak felosztva. Minden lépés több parancsot tartalmazhat, és több művelet végrehajtására is használható.
A folyamat létrehozásának megkezdéséhez nyissa meg a GitHub webhelyén található mintaadattár elágaztatását.
Válassza a Műveletek lapot.
A hivatkozásra kattintva saját maga állíthat be munkafolyamatot.
Ezen a ponton a folyamat csak egy üres fájl az adattár .github/workflows könyvtárában. A GitHub biztosítja az előre elkészített összetevőket, amelyek a legtöbb folyamat létrehozásához szükségesek. Első lépésként másolja és illessze be a következő kódot az Új fájl szerkesztése panelre:
# This is a basic workflow to help you get started with Actions name: CI # Controls when the action will run. Triggers the workflow on push or pull request # events but only for the main branch on: push: branches: [ main ] pull_request: branches: [ main ] # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 # Runs a single command using the runners shell - name: Run a one-line script run: echo Hello, world! # Runs a set of commands using the runners shell - name: Run a multi-line script run: | echo Add other actions to build, echo test, and deploy your project.
Az Új fájl szerkesztése panel felett módosítsa a main.yml fájl nevét a build-staging.yml névre.
Módosítsa a kulcsot a
name
következőreCI
Build and push the latest build to staging
: .# This is a basic workflow to help you get started with Actions name: Build and push the latest build to staging
A "be" eseményindító módosítása
Az alapszintű munkafolyamat-sablon két eseményindítóval rendelkezik:
- Bármely leküldés a főágba.
- Bármely lekéréses kérelem a főágban.
Nincs szüksége a folyamatra a lekéréses kérelem futtatásához, ezért módosítsa úgy, hogy csak a leküldéses eseményindítót tartsa meg a on
kulcs eseményindítóinak módosításával. Távolítsa el a második triggert, és csak a push
címkéket hagyja meg.
name: Build and push the latest build to staging
on:
push:
branches: [ main ]
A kivételi lépés konfigurálása
Ezután kezdjen el dolgozni a feladat lépésein. Ebben a folyamatban a buildelési és az üzembehelyezési feladatokat is implementálja a folyamattervezési diagramon.
A csoportban
jobs
nevezze át a kulcsot abuild
következőrebuild_push_image
: .Azt szeretné, hogy ez a munkafolyamat az Ubuntu 20.04-en fusson, ezért módosítsa a kulcsot a
runs-on
következőreubuntu-latest
ubuntu-20.04
: .Törölje a kulcs utolsó két parancsát
steps
, amelyek csak példák a sablonra.A fájlnak a megjegyzések nélkül a következő példához hasonlóan kell kinéznie:
name: Build and push the latest build to staging on: push: branches: [ main ] jobs: build_push_image: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2
Most már van egy lépése, amely a checkout
műveletet használja. Ez a művelet klónozza az adattárat a feladat környezetébe. Ez a lépés egyenértékű a folyamattervezési diagram első műveletével, a Klónozás adattárral.
Docker-lépések hozzáadása
Ezután adjon hozzá műveleteket a Docker-rendszerkép létrehozásához. Ezekhez a műveletekhez módosíthatja a használatot. Ez a példa csak néhány elérhető paramétert használ. További információt a GitHub buildelési és leküldési műveletének dokumentációjában találhat.
A jobb oldali panel Marketplace lapján keresse meg a Docker-bejelentkezést, és válassza ki a docker által közzétett első találatot.
Feljegyzés
A 2. verzió előtti Docker-műveletek beépített bejelentkezési folyamatokkal rendelkeznek, de a 2. és a újabb verziókban ezek a műveletek külön vannak elválasztva, így a munkafolyamat megfelelő beállításához két műveletre van szükség.
A Telepítés területen válassza a másolás ikont a használati YAML másolásához.
Illessze be a másolt YAML-et a
actions/checkout@v2
művelet alá.Fontos
A YAML használatakor figyeljen a behúzásokra. A
name
kulcsot az előzőuses
kulcshoz kell igazítani.Adja hozzá a következő értékeket a
registry
,username
éspassword
a kulcshoz:registry
:${{ secrets.ACR_NAME }}
username
:${{ secrets.ACR_LOGIN }}
password
:${{ secrets.ACR_PASSWORD }}
Törölje a többi kulcsot, mert ebben a gyakorlatban nem használják őket.
A Marketplace jobb oldali paneljén keressen build- és leküldéses Docker-rendszerképeket, és válassza ki a docker által közzétett első találatot.
A Telepítés területen válassza a másolás ikont a használati YAML másolásához.
Illessze be a másolt YAML-et az utolsó kulcs alá a korábban másolt
docker-login
műveletből.Nevezze át a kulcsot a
name
következőreBuild and push Docker images
Build and push staging images
: .Adja hozzá a következő értékeket a
context
,push
éstags
a kulcshoz:context
:.
push
:true
tags
:${{secrets.ACR_NAME}}/contoso-website:latest
Törölje a többi kulcsot, mert ebben a gyakorlatban nem használják őket.
Adjon hozzá egy másik, a pénztár művelet és a bejelentkezési művelet között hívott
docker/setup-buildx-action
műveletet, hogy beállítsa a Docker buildmotorjának használatát. Másolja ki a következő kódrészletet, és illessze be acheckout
műveletek közélogin
.- name: Set up Buildx uses: docker/setup-buildx-action@v3.0.0
Az utolsó fájlnak a megjegyzések nélkül a következő példához hasonlóan kell kinéznie:
name: Build and push the latest build to staging on: push: branches: [ main ] jobs: build_push_image: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Set up Buildx uses: docker/setup-buildx-action@v3.0.0 - name: Docker Login uses: docker/login-action@v3.0.0 with: registry: ${{ secrets.ACR_NAME }} username: ${{ secrets.ACR_LOGIN }} password: ${{ secrets.ACR_PASSWORD }} - name: Build and push staging images uses: docker/build-push-action@v5.0.0 with: context: . push: true tags: ${{secrets.ACR_NAME}}/contoso-website:latest
A módosítások véglegesítése
A módosítások véglegesítéséhez válassza a módosítások véglegesítése gombot a jobb felső sarokban. A Véglegesítési módosítások képernyőn adja meg a véglegesítés leírását, majd válassza a Véglegesítési módosítások lehetőséget.
A Véglegesítési módosítások kiválasztása új buildet indít el, de ez a build meghiúsul, mert még nem állította be a titkos kulcsokat.
A titkos kódok beállítása
A titkos kulcsok beállításához a GitHub-adattár lapján válassza a Gépház lapot, majd a bal oldali menüBen válassza a Titkos kulcsok és változók>műveletek lehetőséget. Adja meg a munkafolyamat által használt alábbi titkos kulcsokat:
ACR_NAME
: AACR_Name
beállítási szkript által visszaadott értékACR_LOGIN
: AACR Login Username
beállítási szkript által visszaadott értékACR_PASSWORD
: AACR Login Password
beállítási szkript által visszaadott értékRESOURCE_GROUP
: AResource Group Name
beállítási szkript által visszaadott értékCLUSTER_NAME
: contoso-video
Az egyes titkos kódok definiálása:
- Válassza az Új tárház titkos kódját.
- A Név mezőbe írja be a titkos kód nevét az előző listából.
- Titkos kód esetén adja meg a beállítási szkriptből mentett értéket, vagy futtasson egy Cloud Shell-lekérdezést az érték lekéréséhez.
- Válassza az Add secret (Titkos kód hozzáadása) lehetőséget.
Választható lekérdezések futtatása a titkos kódok értékének lekéréséhez
Ha nem rendelkezik a beállítási szkript által visszaadott értékekkel, a következő parancsokat futtathatja az Azure Cloud Shellben az információk lekéréséhez:
ACR_NAME
:az acr list --query "[?contains(resourceGroup, 'mslearn-gh-pipelines')].loginServer" -o table
ACR_LOGIN
:az acr credential show --name <ACR_NAME> --query "username" -o table
ACR_PASSWORD
:az acr credential show --name <ACR_NAME> --query "passwords[0].value" -o table
RESOURCE_GROUP
:az aks list -o tsv --query "[?name=='contoso-video'].resourceGroup"
A feladat futtatása
Válassza a Műveletek lapot.
Válassza ki a listában az egyetlen végrehajtást, a sikertelen build-staging.yml feladatot.
A jobb felső sarokban válassza az Összes feladat> újrafuttatása feladat újrafuttatása lehetőséget, majd az Összes feladat újrafuttatása képernyőn válassza az Újrafuttatási feladatok lehetőséget.
Amikor a build befejeződött, futtassa
az acr repository list --name <ACR_NAME> -o table
a Cloud Shellben annak megerősítéséhez, hogy acontoso-website
Tárolóregisztrációs adatbázis adattára megjelenik-e az eredmények között.
Folytassa a következő leckét az éles munkafolyamat létrehozásához.