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


Oktatóanyag: Többlépéses tároló-munkafolyamat futtatása a felhőben a forráskód véglegesítésekor

A gyors feladat mellett az ACR Tasks többlépéses, többtárolós munkafolyamatokat is támogat, amelyek automatikusan aktiválhatók, amikor forráskódot véglegesít egy Git-adattárban.

Ebből az oktatóanyagból megtudhatja, hogyan definiálhat többlépéses feladatokat yaML-példafájlok használatával, amelyek egy vagy több tárolórendszerképet buildelnek, futtatnak és leküldnek egy beállításjegyzékbe a forráskód véglegesítésekor. Ha olyan feladatot szeretne létrehozni, amely csak egyetlen rendszerkép összeállítását automatizálja a kód véglegesítésekor, tekintse meg az oktatóanyagot: Tárolórendszerkép-buildek automatizálása a felhőben a forráskód véglegesítésekor. Az ACR-feladatok áttekintését lásd: Az operációs rendszer és a keretrendszer javításának automatizálása az ACR Tasks használatával.

Ebben az oktatóanyagban:

  • Többlépéses feladat definiálása YAML-fájllal
  • Tevékenység létrehozása
  • Ha szeretné, hitelesítő adatokat adhat a feladathoz egy másik beállításjegyzékhez való hozzáférés engedélyezéséhez
  • A feladat tesztelése
  • Tevékenységek állapotának megtekintése
  • A feladat aktiválása kódvéglegesítéssel

Ez az oktatóanyag feltételezi, hogy elvégezte az előző oktatóanyag lépéseit. Ha még nem tette meg, hajtsa végre az előző oktatóanyag Előfeltételek szakaszának lépéseit, mielőtt továbblépne.

Előfeltételek

Mintakód letöltése

Ez az oktatóanyag feltételezi, hogy elvégezte az előző oktatóanyag lépéseit, valamint elágaztatta és klónozta a mintaadattárat. Ha még nem tette meg, hajtsa végre az előző oktatóanyag Előfeltételek szakaszának lépéseit, mielőtt továbblépne.

Tárolóregisztrációs adatbázis

Az oktatóanyag elvégzéséhez rendelkeznie kell egy Azure-beli tárolóregisztrációs adatbázissal az Azure-előfizetésében. Amennyiben létre kell hoznia a regisztrációs adatbázist, tekintse meg az előző oktatóanyagot vagy a Rövid útmutató: Tárolóregisztrációs adatbázis létrehozása az Azure CLI-vel című cikket.

Személyes hozzáférési jogkivonat létrehozása a GitHubban

Ha egy git-adattárban szeretne feladatokat aktiválni egy véglegesítésen, az ACR-feladatoknak személyes hozzáférési jogkivonatra (PAT) van szükségük az adattár eléréséhez. Ha még nem rendelkezik PAT-rel, az alábbi lépésekkel hozhat létre egyet a GitHubon:

  1. Lépjen a GitHub PAT-létrehozási oldalára a https://github.com/settings/tokens/new címen.

  2. Adja meg a jogkivonat rövid leírását, például „ACR Tasks bemutatója”.

  3. Válassza ki az ACR hatóköreit az adattár eléréséhez. Ha az oktatóanyagban ismertetett módon szeretne hozzáférni egy nyilvános adattárhoz, engedélyezze az adattár:állapot éspublic_repo

    A GitHub személyes hozzáférési jogkivonatok létrehozására szolgáló oldalának képernyőképe

    Megjegyzés

    Ha személyes adattárat szeretne létrehozni egy privát adattár eléréséhez, válassza ki a teljes adattár-vezérlés hatókörét.

  4. Kattintson a Generate token (Jogkivonat létrehozása) gombra (a rendszer kérheti a jelszó megadását).

  5. Másolja és mentse a létrehozott jogkivonatot egy biztonságos helyre (ezt a jogkivonatot egy feladat definiálására fogja használni a következő szakaszban).

    A létrehozott személyes hozzáférési jogkivonat képernyőképe a GitHubban

A környezet előkészítése az Azure CLI-hez

Többlépéses feladat létrehozása

Most, hogy elvégezte az ACR-feladatok véglegesítési állapotának olvasásához és webhookok létrehozásához szükséges lépéseket egy adattárban, hozzon létre egy többlépéses feladatot, amely elindítja a tárolólemezképek létrehozását, futtatását és leküldését.

YAML-fájl

Egy YAML-fájlban definiálhatja egy többlépéses feladat lépéseit. Az oktatóanyag első többlépéses feladatát a fájl taskmulti.yamlhatározza meg, amely a klónozott GitHub-adattár gyökerében található:

version: v1.1.0
steps:
# Build target image
- build: -t {{.Run.Registry}}/hello-world:{{.Run.ID}} -f Dockerfile .
# Run image 
- cmd: -t {{.Run.Registry}}/hello-world:{{.Run.ID}}
  id: test
  detach: true
  ports: ["8080:80"]
- cmd: docker stop test
# Push image
- push:
  - {{.Run.Registry}}/hello-world:{{.Run.ID}}

Ez a többlépéses feladat a következőket végzi el:

  1. Futtat egy build lépést egy lemezkép létrehozásához a dockerfile-ból a munkakönyvtárban. A rendszerkép a Run.Registrybeállításjegyzéket célozza, ahol a feladat fut, és egy egyedi ACR Tasks-futtatási azonosítóval van megjelölve.
  2. cmd Egy lépés futtatásával futtatja a lemezképet egy ideiglenes tárolóban. Ez a példa elindít egy hosszú ideig futó tárolót a háttérben, és visszaadja a tároló azonosítóját, majd leállítja a tárolót. Egy valós forgatókönyvben a futó tároló tesztelésének lépéseit is belefoglalhatja, hogy az megfelelően fusson.
  3. push Egy lépésben leküldi a létrehozott rendszerképet a futtatási beállításjegyzékbe.

Feladat parancs

Először lássa el ezeket a rendszerhéj-környezeti változókat a környezetnek megfelelő értékekkel. Ez a lépés nem feltétlenül szükséges, de némileg könnyebbé teszi az oktatóanyagban lévő többsoros Azure CLI-parancsok végrehajtását. Ha nem tölti fel ezeket a környezeti változókat, manuálisan kell lecserélnie az értékeket, bárhol is jelenjenek meg a példaparancsokban.

ACR_NAME=<registry-name>        # The name of your Azure container registry
GIT_USER=<github-username>      # Your GitHub user account name
GIT_PAT=<personal-access-token> # The PAT you generated in the previous section

Most hozza létre a feladatot az alábbi az acr task create paranccsal:

az acr task create \
    --registry $ACR_NAME \
    --name example1 \
    --context https://github.com/$GIT_USER/acr-build-helloworld-node.git#main \
    --file taskmulti.yaml \
    --git-access-token $GIT_PAT

Ez a feladat azt határozza meg, hogy az ACR Tasks a --contextáltal megadott adattár ágára véglegesíti a többlépéses feladatot az adott ág kódjából. A lépéseket az adattár gyökeréből megadott --file YAML-fájl határozza meg.

A sikeres az acr task create parancs kimenete az alábbihoz hasonló:

{
  "agentConfiguration": {
    "cpu": 2
  },
  "creationDate": "2020-11-20T03:14:31.763887+00:00",
  "credentials": null,
  "id": "/subscriptions/<Subscription ID>/resourceGroups/myregistry/providers/Microsoft.ContainerRegistry/registries/myregistry/tasks/taskmulti",
  "location": "westus",
  "name": "example1",
  "platform": {
    "architecture": "amd64",
    "os": "linux",
    "variant": null
  },
  "provisioningState": "Succeeded",
  "resourceGroup": "myresourcegroup",
  "status": "Enabled",
  "step": {
    "baseImageDependencies": null,
    "contextAccessToken": null,
    "contextPath": "https://github.com/gituser/acr-build-helloworld-node.git#main",
    "taskFilePath": "taskmulti.yaml",
    "type": "FileTask",
    "values": [],
    "valuesFilePath": null
  },
  "tags": null,
  "timeout": 3600,
  "trigger": {
    "baseImageTrigger": {
      "baseImageTriggerType": "Runtime",
      "name": "defaultBaseimageTriggerName",
      "status": "Enabled"
    },
    "sourceTriggers": [
      {
        "name": "defaultSourceTriggerName",
        "sourceRepository": {
          "branch": "main",
          "repositoryUrl": "https://github.com/gituser/acr-build-helloworld-node.git#main",
          "sourceControlAuthProperties": null,
          "sourceControlType": "Github"
        },
        "sourceTriggerEvents": [
          "commit"
        ],
        "status": "Enabled"
      }
    ]
  },
  "type": "Microsoft.ContainerRegistry/registries/tasks"
}

A többlépéses munkafolyamat tesztelése

A többlépéses feladat teszteléséhez manuálisan aktiválja azt az az acr task run parancs végrehajtásával:

az acr task run --registry $ACR_NAME --name example1

Alapértelmezés szerint az az acr task run a naplókimenetet a konzolra streameli a parancs végrehajtásakor. A kimenet az egyes feladatlépések futtatásának folyamatát mutatja. Az alábbi kimenet a fő lépések megjelenítéséhez lesz tömör.

Queued a run with ID: cab
Waiting for an agent...
2020/11/20 00:03:31 Downloading source code...
2020/11/20 00:03:33 Finished downloading source code
2020/11/20 00:03:33 Using acb_vol_cfe6bd55-3076-4215-8091-6a81aec3d1b1 as the home volume
2020/11/20 00:03:33 Creating Docker network: acb_default_network, driver: 'bridge'
2020/11/20 00:03:34 Successfully set up Docker network: acb_default_network
2020/11/20 00:03:34 Setting up Docker configuration...
2020/11/20 00:03:34 Successfully set up Docker configuration
2020/11/20 00:03:34 Logging in to registry: myregistry.azurecr.io
2020/11/20 00:03:35 Successfully logged into myregistry.azurecr.io
2020/11/20 00:03:35 Executing step ID: acb_step_0. Working directory: '', Network: 'acb_default_network'
2020/11/20 00:03:35 Scanning for dependencies...
2020/11/20 00:03:36 Successfully scanned dependencies
2020/11/20 00:03:36 Launching container with name: acb_step_0
Sending build context to Docker daemon  24.06kB
[...]
Successfully built f669bfd170af
Successfully tagged myregistry.azurecr.io/hello-world:cf19
2020/11/20 00:03:43 Successfully executed container: acb_step_0
2020/11/20 00:03:43 Executing step ID: acb_step_1. Working directory: '', Network: 'acb_default_network'
2020/11/20 00:03:43 Launching container with name: acb_step_1
279b1cb6e092b64c8517c5506fcb45494cd5a0bd10a6beca3ba97f25c5d940cd
2020/11/20 00:03:44 Successfully executed container: acb_step_1
2020/11/20 00:03:44 Executing step ID: acb_step_2. Working directory: '', Network: 'acb_default_network'
2020/11/20 00:03:44 Pushing image: myregistry.azurecr.io/hello-world:cf19, attempt 1
[...]
2020/11/20 00:03:46 Successfully pushed image: myregistry.azurecr.io/hello-world:cf19
2020/11/20 00:03:46 Step ID: acb_step_0 marked as successful (elapsed time in seconds: 7.425169)
2020/11/20 00:03:46 Populating digests for step ID: acb_step_0...
2020/11/20 00:03:47 Successfully populated digests for step ID: acb_step_0
2020/11/20 00:03:47 Step ID: acb_step_1 marked as successful (elapsed time in seconds: 0.827129)
2020/11/20 00:03:47 Step ID: acb_step_2 marked as successful (elapsed time in seconds: 2.112113)
2020/11/20 00:03:47 The following dependencies were found:
2020/11/20 00:03:47
- image:
    registry: myregistry.azurecr.io
    repository: hello-world
    tag: cf19
    digest: sha256:6b981a8ca8596e840228c974c929db05c0727d8630465de536be74104693467a
  runtime-dependency:
    registry: registry.hub.docker.com
    repository: library/node
    tag: 15-alpine
    digest: sha256:8dafc0968fb4d62834d9b826d85a8feecc69bd72cd51723c62c7db67c6dec6fa
  git:
    git-head-revision: 1a3065388a0238e52865db1c8f3e97492a43444c

Run ID: cab was successful after 18s

Összeállítás kiváltása véglegesítéssel

A feladat manuális futtatással való tesztelését követően aktiválja automatikusan a feladatot a forráskód módosításával.

Először ellenőrizze, hogy az adattár helyi klónját tartalmazó könyvtárban van:

cd acr-build-helloworld-node

Ezután az alábbi parancsok futtatásával hozzon létre, véglegesítsen és küldjön le egy új fájlt a GitHub-adattár adott elágazásába:

echo "Hello World!" > hello.txt
git add hello.txt
git commit -m "Testing ACR Tasks"
git push origin main

Előfordulhat, hogy a rendszer a GitHub hitelesítő adatok megadását kéri a git push parancs végrehajtásakor. Adja meg GitHub-felhasználónevét, valamint a jelszóként korábban létrehozott személyes hozzáférési jogkivonatot (PAT).

Username for 'https://github.com': <github-username>
Password for 'https://githubuser@github.com': <personal-access-token>

Miután leküldte a véglegesítést az adattárba, az ACR Tasks által létrehozott webhook aktiválódik, és elindítja a feladatot Azure Container Registry. Megjeleníti az aktuálisan futó feladat naplóit az összeállítási folyamat ellenőrzéséhez és monitorozásához:

az acr task logs --registry $ACR_NAME

A kimenet az alábbihoz hasonló, és az aktuálisan (vagy legutóbb) futtatott feladatot mutatja:

Showing logs of the last created run.
Run ID: cad

[...]

Run ID: cad was successful after 37s

Összeállítások listázása

Az ACR Tasks által a regisztrációs adatbázis számára elkészített feladatfuttatások listájának megtekintéséhez futtassa az az acr task list-runs parancsot:

az acr task list-runs --registry $ACR_NAME --output table

A parancs kimenete az alábbihoz hasonlóan néz ki. Megjelennek az ACR Tasks által végrehajtott futtatások, és a „Git Commit” (Gitbeli véglegesítés) jelölés jelenik meg a legutóbbi feladat TRIGGER oszlopában:

RUN ID    TASK            PLATFORM    STATUS     TRIGGER    STARTED               DURATION
--------  --------------  ----------  ---------  ---------  --------------------  ----------
cad       example1        linux       Succeeded  Commit     2020-11-20T00:22:15Z  00:00:35
cac       taskhelloworld  linux       Succeeded  Commit     2020-11-20T00:22:15Z  00:00:22
cab       example1        linux       Succeeded  Manual     2020-11-20T00:18:36Z  00:00:47

Több beállításjegyzékbeli többlépéses feladat létrehozása

Az ACR Tasks alapértelmezés szerint rendelkezik a rendszerképek leküldésére vagy lekérésére vonatkozó engedélyekkel a beállításjegyzékből, ahol a feladat fut. Érdemes lehet futtatni egy többlépéses feladatot, amely egy vagy több regisztrációs adatbázist céloz meg a futtatási beállításjegyzék mellett. Előfordulhat például, hogy lemezképeket kell létrehoznia egy beállításjegyzékben, és különböző címkékkel rendelkező lemezképeket kell tárolnia egy második regisztrációs adatbázisban, amelyet egy éles rendszer ér el. Ez a példa bemutatja, hogyan hozhat létre ilyen feladatot, és hogyan adhat meg hitelesítő adatokat egy másik beállításjegyzékhez.

Ha még nincs második beállításjegyzéke, hozzon létre egyet ehhez a példához. Amennyiben létre kell hoznia a regisztrációs adatbázist, tekintse meg az előző oktatóanyagot vagy a Rövid útmutató: Tárolóregisztrációs adatbázis létrehozása az Azure CLI-vel című cikket.

A feladat létrehozásához szüksége lesz a regisztrációs adatbázis bejelentkezési kiszolgálójának nevére, amely mycontainerregistrydate.azurecr.io formátumú (mind kisbetűs). Ebben a példában a második beállításjegyzéket használja a build dátuma szerint címkézett rendszerképek tárolására.

YAML-fájl

Az oktatóanyag második példa többlépéses feladatát a fájl taskmulti-multiregistry.yamlhatározza meg, amely a klónozott GitHub-adattár gyökerében található:

version: v1.1.0
steps:
# Build target images
- build: -t {{.Run.Registry}}/hello-world:{{.Run.ID}} -f Dockerfile .
- build: -t {{.Values.regDate}}/hello-world:{{.Run.Date}} -f Dockerfile .
# Run image 
- cmd: -t {{.Run.Registry}}/hello-world:{{.Run.ID}}
  id: test
  detach: true
  ports: ["8080:80"]
- cmd: docker stop test
# Push images
- push:
  - {{.Run.Registry}}/hello-world:{{.Run.ID}}
  - {{.Values.regDate}}/hello-world:{{.Run.Date}}

Ez a többlépéses feladat a következőket végzi el:

  1. Két build lépésben hozhat létre lemezképeket a dockerfile-ból a munkakönyvtárban:
    • Az első a Run.Registrybeállításjegyzéket célozza meg, ahol a feladat fut, és az ACR Tasks futtatási azonosítójával van megjelölve.
    • A második a feladat létrehozásakor beállított érték regDateáltal azonosított beállításjegyzéket célozza meg (vagy egy, a számára átadott az acr task createkülső values.yaml fájlon keresztül adja meg). Ez a kép a futtatási dátummal van megjelölve.
  2. Futtat egy cmd lépést az egyik beépített tároló futtatásához. Ez a példa elindít egy hosszú ideig futó tárolót a háttérben, és visszaadja a tárolóazonosítót, majd leállítja a tárolót. Valós forgatókönyv esetén tesztelhet egy futó tárolót, hogy biztosan megfelelően fusson.
  3. push Egy lépésben leküldi a létrehozott rendszerképeket, az elsőt a futtatási beállításjegyzékbe, a másodikat pedig a által regDateazonosított beállításjegyzékbe.

Feladat parancs

A korábban definiált rendszerhéj-környezeti változók használatával hozza létre a feladatot az alábbi az acr task create paranccsal. Cserélje le a beállításjegyzék nevét a mycontainerregistrydate kifejezésre.

az acr task create \
    --registry $ACR_NAME \
    --name example2 \
    --context https://github.com/$GIT_USER/acr-build-helloworld-node.git#main \
    --file taskmulti-multiregistry.yaml \
    --git-access-token $GIT_PAT \
    --set regDate=mycontainerregistrydate.azurecr.io

Tevékenység hitelesítő adatainak hozzáadása

Ha képeket szeretne leküldni az érték regDateáltal azonosított beállításjegyzékbe, használja az az acr task credential add parancsot a beállításjegyzék bejelentkezési hitelesítő adatainak a tevékenységhez való hozzáadásához.

Ebben a példában azt javasoljuk, hogy hozzon létre egy szolgáltatásnevet , amely hozzáfér az AcrPush szerepkörre hatókörrel rendelkező beállításjegyzékhez, így rendelkezik a rendszerképek leküldésére vonatkozó engedélyekkel. A szolgáltatásnév létrehozásához használja a következő szkriptet:

#!/bin/bash
# This script requires Azure CLI version 2.25.0 or later. Check version with `az --version`.

# Modify for your environment.
# ACR_NAME: The name of your Azure Container Registry
# SERVICE_PRINCIPAL_NAME: Must be unique within your AD tenant
ACR_NAME=$containerRegistry
SERVICE_PRINCIPAL_NAME=$servicePrincipal

# Obtain the full registry ID
ACR_REGISTRY_ID=$(az acr show --name $ACR_NAME --query "id" --output tsv)
# echo $registryId

# Create the service principal with rights scoped to the registry.
# Default permissions are for docker pull access. Modify the '--role'
# argument value as desired:
# acrpull:     pull only
# acrpush:     push and pull
# owner:       push, pull, and assign roles
PASSWORD=$(az ad sp create-for-rbac --name $SERVICE_PRINCIPAL_NAME --scopes $ACR_REGISTRY_ID --role acrpull --query "password" --output tsv)
USER_NAME=$(az ad sp list --display-name $SERVICE_PRINCIPAL_NAME --query "[].appId" --output tsv)

# Output the service principal's credentials; use these in your services and
# applications to authenticate to the container registry.
echo "Service principal ID: $USER_NAME"
echo "Service principal password: $PASSWORD"

Adja meg a szolgáltatásnév alkalmazásazonosítóját és jelszavát az alábbi az acr task credential add parancsban. Mindenképpen frissítse a bejelentkezési kiszolgáló mycontainerregistrydate nevét a második beállításjegyzék nevével:

az acr task credential add --name example2 \
    --registry $ACR_NAME \
    --login-server mycontainerregistrydate.azurecr.io \
    --username <service-principal-application-id> \
    --password <service-principal-password>

A parancssori felület a hozzáadott regisztrációs adatbázis bejelentkezési kiszolgálójának nevét adja vissza.

A többlépéses munkafolyamat tesztelése

Az előző példához hasonlóan a többlépéses feladat teszteléséhez manuálisan aktiválja azt az az acr feladatfuttatási parancs végrehajtásával. Ha a feladatot véglegesítéssel szeretné aktiválni a Git-adattárban, olvassa el a Build aktiválása véglegesítéssel című szakaszt.

az acr task run --registry $ACR_NAME --name example2

Alapértelmezés szerint az az acr task run a naplókimenetet a konzolra streameli a parancs végrehajtásakor. A kimenet a korábbiakhoz hasonlóan az egyes tevékenységlépések futtatásának folyamatát mutatja. A kimenet kondenzálva jelenik meg a fő lépések megjelenítéséhez.

Kimenet:

Queued a run with ID: cf1g
Waiting for an agent...
2020/11/20 04:33:39 Downloading source code...
2020/11/20 04:33:41 Finished downloading source code
2020/11/20 04:33:42 Using acb_vol_4569b017-29fe-42bd-83b2-25c45a8ac807 as the home volume
2020/11/20 04:33:42 Creating Docker network: acb_default_network, driver: 'bridge'
2020/11/20 04:33:43 Successfully set up Docker network: acb_default_network
2020/11/20 04:33:43 Setting up Docker configuration...
2020/11/20 04:33:44 Successfully set up Docker configuration
2020/11/20 04:33:44 Logging in to registry: mycontainerregistry.azurecr.io
2020/11/20 04:33:45 Successfully logged into mycontainerregistry.azurecr.io
2020/11/20 04:33:45 Logging in to registry: mycontainerregistrydate.azurecr.io
2020/11/20 04:33:47 Successfully logged into mycontainerregistrydate.azurecr.io
2020/11/20 04:33:47 Executing step ID: acb_step_0. Working directory: '', Network: 'acb_default_network'
2020/11/20 04:33:47 Scanning for dependencies...
2020/11/20 04:33:47 Successfully scanned dependencies
2020/11/20 04:33:47 Launching container with name: acb_step_0
Sending build context to Docker daemon  25.09kB
[...]
Successfully tagged mycontainerregistry.azurecr.io/hello-world:cf1g
2020/11/20 04:33:55 Successfully executed container: acb_step_0
2020/11/20 04:33:55 Executing step ID: acb_step_1. Working directory: '', Network: 'acb_default_network'
2020/11/20 04:33:55 Scanning for dependencies...
2020/11/20 04:33:56 Successfully scanned dependencies
2020/11/20 04:33:56 Launching container with name: acb_step_1
Sending build context to Docker daemon  25.09kB
[...]
Successfully tagged mycontainerregistrydate.azurecr.io/hello-world:20190503-043342z
2020/11/20 04:33:57 Successfully executed container: acb_step_1
2020/11/20 04:33:57 Executing step ID: acb_step_2. Working directory: '', Network: 'acb_default_network'
2020/11/20 04:33:57 Launching container with name: acb_step_2
721437ff674051b6be63cbcd2fa8eb085eacbf38d7d632f1a079320133182101
2020/11/20 04:33:58 Successfully executed container: acb_step_2
2020/11/20 04:33:58 Executing step ID: acb_step_3. Working directory: '', Network: 'acb_default_network'
2020/11/20 04:33:58 Launching container with name: acb_step_3
test
2020/11/20 04:34:09 Successfully executed container: acb_step_3
2020/11/20 04:34:09 Executing step ID: acb_step_4. Working directory: '', Network: 'acb_default_network'
2020/11/20 04:34:09 Pushing image: mycontainerregistry.azurecr.io/hello-world:cf1g, attempt 1
The push refers to repository [mycontainerregistry.azurecr.io/hello-world]
[...]
2020/11/20 04:34:12 Successfully pushed image: mycontainerregistry.azurecr.io/hello-world:cf1g
2020/11/20 04:34:12 Pushing image: mycontainerregistrydate.azurecr.io/hello-world:20190503-043342z, attempt 1
The push refers to repository [mycontainerregistrydate.azurecr.io/hello-world]
[...]
2020/11/20 04:34:19 Successfully pushed image: mycontainerregistrydate.azurecr.io/hello-world:20190503-043342z
2020/11/20 04:34:19 Step ID: acb_step_0 marked as successful (elapsed time in seconds: 8.125744)
2020/11/20 04:34:19 Populating digests for step ID: acb_step_0...
2020/11/20 04:34:21 Successfully populated digests for step ID: acb_step_0
2020/11/20 04:34:21 Step ID: acb_step_1 marked as successful (elapsed time in seconds: 2.009281)
2020/11/20 04:34:21 Populating digests for step ID: acb_step_1...
2020/11/20 04:34:23 Successfully populated digests for step ID: acb_step_1
2020/11/20 04:34:23 Step ID: acb_step_2 marked as successful (elapsed time in seconds: 0.795440)
2020/11/20 04:34:23 Step ID: acb_step_3 marked as successful (elapsed time in seconds: 11.446775)
2020/11/20 04:34:23 Step ID: acb_step_4 marked as successful (elapsed time in seconds: 9.734973)
2020/11/20 04:34:23 The following dependencies were found:
2020/11/20 04:34:23
- image:
    registry: mycontainerregistry.azurecr.io
    repository: hello-world
    tag: cf1g
    digest: sha256:75354e9edb995e8661438bad9913deed87a185fddd0193811f916d684b71a5d2
  runtime-dependency:
    registry: registry.hub.docker.com
    repository: library/node
    tag: 15-alpine
    digest: sha256:8dafc0968fb4d62834d9b826d85a8feecc69bd72cd51723c62c7db67c6dec6fa
  git:
    git-head-revision: 9d9023473c46a5e2c315681b11eb4552ef0faccc
- image:
    registry: mycontainerregistrydate.azurecr.io
    repository: hello-world
    tag: 20190503-043342z
    digest: sha256:75354e9edb995e8661438bad9913deed87a185fddd0193811f916d684b71a5d2
  runtime-dependency:
    registry: registry.hub.docker.com
    repository: library/node
    tag: 15-alpine
    digest: sha256:8dafc0968fb4d62834d9b826d85a8feecc69bd72cd51723c62c7db67c6dec6fa
  git:
    git-head-revision: 9d9023473c46a5e2c315681b11eb4552ef0faccc

Run ID: cf1g was successful after 46s

Következő lépések

Ebben az oktatóanyagban megtanulta, hogyan hozhat létre többlépéses, többtárolós feladatokat, amelyek automatikusan aktiválhatók, amikor forráskódot véglegesít egy Git-adattárban. A többlépéses feladatok speciális funkcióit, beleértve a párhuzamos és függő lépések végrehajtását, tekintse meg az ACR Tasks YAML-referenciáját. Folytassa a következő oktatóanyaggal, amelyből megtudhatja, hogyan hozhat létre olyan feladatokat, amelyek a tárolórendszerképek alapként szolgáló rendszerképeinek frissítésekor aktiválnak összeállításokat.