Gyakorlat – Az alkalmazás lemezképének létrehozása

Befejeződött

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ó:

Diagram that shows the procession from triggers, through three build steps, to the deploy steps in a pipeline.

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.

  1. Válassza a Műveletek lapot.

  2. A hivatkozásra kattintva saját maga állíthat be munkafolyamatot.

    Screenshot that shows the Get started with GitHub Actions page on the GitHub website.

    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.
    
  3. Az Új fájl szerkesztése panel felett módosítsa a main.yml fájl nevét a build-staging.yml névre.

    Screenshot that shows an example file being edited in the Edit new file pane on the GitHub website.

  4. Módosítsa a kulcsot a name következőre CIBuild 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.

  1. A csoportban jobsnevezze át a kulcsot a build következőre build_push_image: .

  2. Azt szeretné, hogy ez a munkafolyamat az Ubuntu 20.04-en fusson, ezért módosítsa a kulcsot a runs-on következőre ubuntu-latestubuntu-20.04: .

  3. 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.

  1. 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.

    Screenshot showing the search results listing Docker Login.

    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.

  2. A Telepítés területen válassza a másolás ikont a használati YAML másolásához.

    Screenshot showing the copy function and selecting the Docker Login task.

  3. 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.

  4. Adja hozzá a következő értékeket a registry, usernameés password a kulcshoz:

    • registry: ${{ secrets.ACR_NAME }}
    • username: ${{ secrets.ACR_LOGIN }}
    • password: ${{ secrets.ACR_PASSWORD }}
  5. Törölje a többi kulcsot, mert ebben a gyakorlatban nem használják őket.

  6. 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.

    Screenshot that shows the search results that list Build and push Docker images.

  7. A Telepítés területen válassza a másolás ikont a használati YAML másolásához.

  8. Illessze be a másolt YAML-et az utolsó kulcs alá a korábban másolt docker-login műveletből.

  9. Nevezze át a kulcsot a name következőre Build and push Docker imagesBuild and push staging images: .

  10. Adja hozzá a következő értékeket a context, pushés tags a kulcshoz:

    • context: .
    • push: true
    • tags: ${{secrets.ACR_NAME}}/contoso-website:latest
  11. Törölje a többi kulcsot, mert ebben a gyakorlatban nem használják őket.

  12. 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 a checkout 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.

Screenshot that shows the Commit changes button in the Commit changes pane.

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: A ACR_Name beállítási szkript által visszaadott érték
  • ACR_LOGIN: A ACR Login Username beállítási szkript által visszaadott érték
  • ACR_PASSWORD: A ACR Login Password beállítási szkript által visszaadott érték
  • RESOURCE_GROUP: A Resource Group Name beállítási szkript által visszaadott érték
  • CLUSTER_NAME: contoso-video

Az egyes titkos kódok definiálása:

  1. Válassza az Új tárház titkos kódját.
  2. A Név mezőbe írja be a titkos kód nevét az előző listából.
  3. 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.
  4. 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

  1. Válassza a Műveletek lapot.

  2. Válassza ki a listában az egyetlen végrehajtást, a sikertelen build-staging.yml feladatot.

  3. 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.

    Screenshot that shows the Re-run jobs and Re-run all jobs buttons.

  4. 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 a contoso-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.