Share via


ACR-feladatok referenciája: YAML

Az ACR Tasks többlépéses feladatdefiníciója tárolóközpontú számítási primitívet biztosít, amely tárolók létrehozására, tesztelésére és javítására összpontosít. Ez a cikk a többlépéses feladatokat meghatározó YAML-fájlok parancsait, paramétereit, tulajdonságait és szintaxisát ismerteti.

Ez a cikk a többlépéses feladat YAML-fájljainak ACR-feladatokhoz való létrehozásához tartalmaz referenciát. Ha be szeretne ismerkedni az ACR-feladatokkal, tekintse meg az ACR-feladatok áttekintését.

acr-task.yaml fájlformátum

Az ACR Tasks támogatja a többlépéses feladatdeklarációt a szabványos YAML-szintaxisban. A tevékenység lépéseit yaML-fájlban határozhatja meg. Ezután manuálisan is futtathatja a feladatot, ha átadja a fájlt az az acr run parancsnak. Vagy a fájl használatával hozzon létre egy feladatot az az acr task create paranccsal, amely automatikusan aktiválódik egy Git-véglegesítésen, egy alaprendszerkép-frissítésen vagy egy ütemezésen. Bár ez a cikk a lépéseket tartalmazó fájlra hivatkozik acr-task.yaml , az ACR Tasks bármilyen, támogatott kiterjesztésű érvényes fájlnevet támogat.

A legfelső szintű acr-task.yaml primitívek a tevékenységtulajdonságok, a lépéstípusok és a lépéstulajdonságok:

  • A tevékenységtulajdonságok a tevékenység végrehajtásának összes lépésére vonatkoznak. Számos globális feladattulajdonság létezik, például:
    • version
    • stepTimeout
    • workingDirectory
  • A tevékenységlépés-típusok a tevékenységekben végrehajtható műveletek típusait jelölik. Három lépéstípus létezik:
    • build
    • push
    • cmd
  • A tevékenységlépés tulajdonságai olyan paraméterek, amelyek egy adott lépésre vonatkoznak. Több lépéstulajdonság is létezik, például:
    • startDelay
    • timeout
    • when
    • ... és még sok más.

A fájl alapformátuma acr-task.yaml , beleértve néhány gyakori lépéstulajdonságt is, a következő. Bár nem teljes körűen ábrázolja az összes elérhető lépéstulajdonságt vagy lépéstípus-használatot, gyors áttekintést nyújt az alapszintű fájlformátumról.

version: # acr-task.yaml format version.
stepTimeout: # Seconds each step may take.
steps: # A collection of image or container actions.
  - build: # Equivalent to "docker build," but in a multi-tenant environment
  - push: # Push a newly built or retagged image to a registry.
    when: # Step property that defines either parallel or dependent step execution.
  - cmd: # Executes a container, supports specifying an [ENTRYPOINT] and parameters.
    startDelay: # Step property that specifies the number of seconds to wait before starting execution.

Támogatott feladatfájlnévkiterjesztések

Az ACR Tasks számos fájlnévkiterjesztést foglalt le, köztük .yamlazt is, hogy feladatfájlként fog feldolgozni. Az ACR Tasks a következő listában nem szereplő bővítményeket Docker-fájlnak tekinti: .yaml, .yml, .toml, .json, .sh, .bash, .zsh, .ps1, .ps, .cmd, .bat, .ts, .js, .php, .py, .rb, .lua

Az ACR Tasks jelenleg csak a YAML fájlformátumot támogatja. A többi fájlnévkiterjesztés a lehetséges jövőbeli támogatáshoz van fenntartva.

A mintafeladatok futtatása

A cikk következő szakaszaiban több mintafeladatfájlra is hivatkozunk. A mintafeladatok egy nyilvános GitHub-adattárban( Azure-Samples/acr-tasks) találhatók. Ezeket az az acr run Azure CLI-paranccsal futtathatja. A mintaparancsok a következőkhöz hasonlóak:

az acr run -f build-push-hello-world.yaml https://github.com/Azure-Samples/acr-tasks.git

A mintaparancsok formázása feltételezi, hogy konfigurált egy alapértelmezett beállításjegyzéket az Azure CLI-ben, ezért kihagyják a paramétert --registry . Az alapértelmezett beállításjegyzék konfigurálásához használja az az config parancsot a set paranccsal, amely elfogad egy defaults.acr=REGISTRY_NAME kulcsértékpárt.

Az Azure CLI konfigurálása például egy "myregistry" nevű alapértelmezett beállításjegyzékkel:

az config set defaults.acr=myregistry

Tevékenység tulajdonságai

A tevékenységtulajdonságok általában egy acr-task.yaml fájl tetején jelennek meg, és globális tulajdonságok, amelyek a feladat lépéseinek teljes végrehajtására vonatkoznak. Ezen globális tulajdonságok némelyike felül lehet bírálni egy adott lépésen belül.

Tulajdonság Típus Választható Description Támogatott felülbírálás Alapértelmezett érték
version sztring Igen A fájl verziója az acr-task.yaml ACR Tasks szolgáltatás által elemezve. Bár az ACR Tasks a visszamenőleges kompatibilitás fenntartására törekszik, ez az érték lehetővé teszi, hogy az ACR Tasks fenntartsa a kompatibilitást egy meghatározott verzión belül. Ha nincs meghatározva, alapértelmezés szerint a legújabb verzió lesz. No None
stepTimeout int (másodperc) Yes A lépések maximális futási száma másodpercben. Ha a stepTimeout tulajdonság egy tevékenységen van megadva, az összes lépés alapértelmezett timeout tulajdonságát állítja be. Ha a timeout tulajdonság egy lépésben van megadva, felülbírálja a stepTimeout tevékenység által biztosított tulajdonságot.

Egy tevékenység lépés-időtúllépési értékeinek összege megegyezik a tevékenység futtatási timeout tulajdonságának értékével (például a az acr task create parancsnak való átadással--timeout). Ha a tevékenységek futtatási timeout értéke kisebb, prioritást élvez.
Yes 600 (10 perc)
workingDirectory sztring Igen A tároló munkakönyvtára futásidőben. Ha a tulajdonság egy tevékenységen van megadva, az összes lépés alapértelmezett workingDirectory tulajdonságát állítja be. Ha egy lépésben van megadva, felülbírálja a feladat által biztosított tulajdonságot. Yes c:\workspace Windows vagy /workspace Linux rendszeren
env [sztring, sztring, ...] Yes A tevékenység környezeti változóit meghatározó formátumú sztringek key=value tömbje. Ha a tulajdonság egy tevékenységen van megadva, az összes lépés alapértelmezett env tulajdonságát állítja be. Ha egy lépésben van megadva, felülbírálja a tevékenységtől örökölt környezeti változókat. Yes None
secrets [titkos, titkos, ...] Yes Titkos objektumok tömbje. No None
networks [hálózat, hálózat, ...] Yes Hálózati objektumok tömbje. No None
volumes [kötet, kötet, ...] Yes Kötetobjektumok tömbje. A lépéshez csatlakoztatni kívánt forrástartalommal rendelkező köteteket adja meg. No None

titkos kód

A titkos objektum a következő tulajdonságokkal rendelkezik.

Tulajdonság Típus Választható Description Alapértelmezett érték
id sztring No A titkos kód azonosítója. None
keyvault sztring Igen Az Azure Key Vault Secret URL-címe. None
clientID sztring Igen Az Azure-erőforrások felhasználó által hozzárendelt felügyelt identitásának ügyfél-azonosítója. None

network

A hálózati objektum a következő tulajdonságokkal rendelkezik.

Tulajdonság Típus Választható Description Alapértelmezett érték
name sztring No A hálózat neve. None
driver sztring Igen A hálózatot kezelő illesztőprogram. None
ipv6 logikai Yes Engedélyezve van-e az IPv6-alapú hálózatkezelés. false
skipCreation logikai Yes A hálózatlétrehozás kihagyása. false
isDefault logikai Yes Azt jelzi, hogy a hálózat a Azure Container Registry alapértelmezett hálózat-e. false

Kötet

A kötetobjektum a következő tulajdonságokkal rendelkezik.

Tulajdonság Típus Választható Description Alapértelmezett érték
name sztring No A csatlakoztatni kívánt kötet neve. Csak alfanumerikus karaktereket, '-' és '_' karaktereket tartalmazhat. None
secret map[string]string No A térkép minden kulcsa a köteten létrehozott és feltöltött fájl neve. Minden érték a titkos kód sztringverziója. A titkos kódoknak Base64 kódolásúnak kell lenniük. None

Tevékenységlépés-típusok

Az ACR Tasks három lépéstípust támogat. Minden lépéstípus számos tulajdonságot támogat, amelyek részletes leírását az egyes lépéstípusokról a szakasz ismerteti.

Lépés típusa Description
build Tárolórendszerképet hoz létre ismerős docker build szintaxissal.
push Végrehajt egy docker push újonnan létrehozott vagy újracímkézett rendszerképet egy tárolóregisztrációs adatbázisba. Azure Container Registry, más privát regisztrációs adatbázisok és a nyilvános Docker Hub támogatottak.
cmd Parancsként futtat egy tárolót a tárolónak [ENTRYPOINT]átadott paraméterekkel. A cmd lépéstípus támogatja az olyan paramétereket, mint a env, detachés más ismerős docker run parancsbeállítások, amelyek lehetővé teszik az egység- és funkcionális tesztelést egyidejű tárolóvégrehajtással.

Épít

Hozzon létre egy tárolórendszerképet. A build lépéstípus egy több-bérlős, biztonságos felhőbeli futtatási docker build módot jelöl első osztályú primitívként.

Szintaxis: build

version: v1.1.0
steps:
  - [build]: -t [imageName]:[tag] -f [Dockerfile] [context]
    [property]: [value]

Futtassa az az acr runparancsot a docker-verzió lekéréséhez.

az acr run -r $ACR_NAME --cmd "docker version" /dev/null

Adjon hozzá környezeti változót DOCKER_BUILDKIT=1 a yaml-fájlhoz, hogy engedélyezze buildkit és használja secret a következővel: buildkit.

A build lépéstípus az alábbi táblázatban szereplő paramétereket támogatja. A build lépéstípus a docker buildparancs összes buildelési lehetőségét is támogatja, például --build-arg a buildidő változóinak beállítását.

Paraméter Leírás Választható
-t | --image Meghatározza a beépített rendszerkép teljes minősítését image:tag .

Mivel a rendszerképek belső feladatérvényesítéshez használhatók, például funkcionális tesztekhez, nem minden rendszerkép szükséges push a beállításjegyzékhez. A rendszerkép feladatvégrehajtáson belüli példányához azonban a rendszerképnek egy névre kell hivatkoznia.

Az ACR Tasks futtatásával ellentétben az acr buildaz alapértelmezett leküldési viselkedés nem működik. Az ACR Tasks esetében az alapértelmezett forgatókönyv feltételezi, hogy képes létrehozni, ellenőrizni, majd leküldni egy rendszerképet. A leküldéses útmutatóból megtudhatja, hogyan küldhet le beépített rendszerképeket.
Yes
-f | --file Megadja a(z) számára átadott docker buildDocker-fájlt. Ha nincs megadva, a rendszer a környezet gyökerében lévő alapértelmezett Dockerfile-t feltételezi. Dockerfile megadásához adja meg a fájlnevet a környezet gyökeréhez viszonyítva. Yes
context A gyökérkönyvtár a következőnek lett átadva docker build: . Az egyes feladatok gyökérkönyvtára egy megosztott workingDirectory könyvtárra van állítva, és tartalmazza a társított Git klónozott könyvtár gyökerét. No

Tulajdonságok: build

A build lépéstípus a következő tulajdonságokat támogatja. Ezeknek a tulajdonságoknak a részleteit a cikk Tevékenységlépés tulajdonságai szakaszában találja.

Tulajdonságok Típus Kötelező
detach logikai Választható
disableWorkingDirectoryOverride logikai Választható
entryPoint sztring Választható
env [sztring, sztring, ...] Választható
expose [sztring, sztring, ...] Választható
id sztring Választható
ignoreErrors logikai Választható
isolation sztring Választható
keep logikai Választható
network object Választható
ports [sztring, sztring, ...] Választható
pull logikai Választható
repeat int Választható
retries int Választható
retryDelay int (másodperc) Választható
secret object Választható
startDelay int (másodperc) Választható
timeout int (másodperc) Választható
volumeMount object Választható
when [sztring, sztring, ...] Választható
workingDirectory sztring Választható

Példák: build

Kép létrehozása – környezet a gyökérkönyvtárban

az acr run -f build-hello-world.yaml https://github.com/AzureCR/acr-tasks-sample.git
version: v1.1.0
steps:
  - build: -t $Registry/hello-world -f hello-world.dockerfile .

Kép létrehozása – környezet az alkönyvtárban

version: v1.1.0
steps:
  - build: -t $Registry/hello-world -f hello-world.dockerfile ./subDirectory

Nyomja

Egy vagy több beépített vagy újracímkézett rendszerkép leküldése egy tárolóregisztrációs adatbázisba. Támogatja a privát adatbázisokba, például a Azure Container Registry vagy a nyilvános Docker Hub való leküldést.

Szintaxis: leküldés

A push lépéstípus támogatja a képek gyűjteményét. A YAML-gyűjtemény szintaxisa támogatja a beágyazott és beágyazott formátumokat. Egyetlen kép leküldése általában beágyazott szintaxissal jelenik meg:

version: v1.1.0
steps:
  # Inline YAML collection syntax
  - push: ["$Registry/hello-world:$ID"]

A nagyobb olvashatóság érdekében több kép leküldéséhez használjon beágyazott szintaxist:

version: v1.1.0
steps:
  # Nested YAML collection syntax
  - push:
    - $Registry/hello-world:$ID
    - $Registry/hello-world:latest

Tulajdonságok: leküldés

A push lépéstípus a következő tulajdonságokat támogatja. Ezeknek a tulajdonságoknak a részleteit a cikk Tevékenységlépés tulajdonságai szakaszában találja.

Tulajdonság Típus Kötelező
env [sztring, sztring, ...] Választható
id sztring Választható
ignoreErrors logikai Választható
startDelay int (másodperc) Választható
timeout int (másodperc) Választható
when [sztring, sztring, ...] Választható

Példák: leküldés

Több kép leküldése

az acr run -f build-push-hello-world.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
  - build: -t $Registry/hello-world:$ID -f hello-world.dockerfile .
  - push: 
    - $Registry/hello-world:$ID

Buildelés, leküldés és futtatás

az acr run -f build-run-hello-world.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
  - build: -t $Registry/hello-world:$ID -f hello-world.dockerfile .
  - push:
    - $Registry/hello-world:$ID
  - cmd: $Registry/hello-world:$ID

Cmd

A cmd lépéstípus egy tárolót futtat.

Szintaxis: cmd

version: v1.1.0
steps:
  - [cmd]: [containerImage]:[tag (optional)] [cmdParameters to the image]

Tulajdonságok: cmd

A cmd lépéstípus a következő tulajdonságokat támogatja:

Tulajdonság Típus Kötelező
detach logikai Választható
disableWorkingDirectoryOverride logikai Választható
entryPoint sztring Választható
env [sztring, sztring, ...] Választható
expose [sztring, sztring, ...] Választható
id sztring Választható
ignoreErrors logikai Választható
isolation sztring Választható
keep logikai Választható
network object Választható
ports [sztring, sztring, ...] Választható
pull logikai Választható
repeat int Választható
retries int Választható
retryDelay int (másodperc) Választható
secret object Választható
startDelay int (másodperc) Választható
timeout int (másodperc) Választható
volumeMount object Választható
when [sztring, sztring, ...] Választható
workingDirectory sztring Választható

Ezeknek a tulajdonságoknak a részleteit a cikk Tevékenységlépés tulajdonságai szakaszában találja.

Példák: cmd

Hello-world rendszerkép futtatása

Ez a parancs végrehajtja a hello-world.yaml feladatfájlt, amely a hello-world rendszerképre hivatkozik a Docker Hub.

az acr run -f hello-world.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
  - cmd: mcr.microsoft.com/hello-world

Bash-rendszerkép futtatása és echo "hello world"

Ez a parancs végrehajtja a bash-echo.yaml feladatfájlt, amely a bash rendszerképére hivatkozik a Docker Hub.

az acr run -f bash-echo.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
  - cmd: bash echo hello world

Adott bash-rendszerképcímke futtatása

Egy adott képverzió futtatásához adja meg a címkét a cmd() fájlban.

Ez a parancs végrehajtja a bash-echo-3.yaml feladatfájlt, amely a bash:3.0 rendszerképre hivatkozik Docker Hub.

az acr run -f bash-echo-3.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
  - cmd: bash:3.0 echo hello world

Egyéni rendszerképek futtatása

A cmd lépéstípus szabványos docker run formátumú képekre hivatkozik. A beállításjegyzékkel nem előtaggal ellátott képek a docker.io származnak. Az előző példa a következőképpen jelenhet meg:

version: v1.1.0
steps:
  - cmd: docker.io/bash:3.0 echo hello world

A szabványos docker run rendszerkép-referenciakonvenciával cmd bármilyen magánregisztrációs adatbázisból vagy nyilvános Docker Hub futtathat lemezképeket. Ha képekre hivatkozik ugyanabban a beállításjegyzékben, amelyben az ACR-feladat fut, nem kell megadnia a beállításjegyzék hitelesítő adatait.

  • Futtasson egy Azure-tárolóregisztrációs adatbázisból származó lemezképet. Az alábbi példa feltételezi, hogy van egy nevű beállításjegyzéke myregistryés egy egyéni rendszerképe myimage:mytag.

    version: v1.1.0
    steps:
        - cmd: myregistry.azurecr.io/myimage:mytag
    
  • A beállításjegyzék referenciájának általánosítása run változóval vagy aliassal

    Ahelyett, hogy a beállításjegyzék nevét egy fájlban acr-task.yaml keményen kódolta volna, hordozhatóbbá teheti egy Run változó vagy alias használatával. A Run.Registry változó vagy $Registry alias futásidőben kiterjeszti annak a beállításjegyzéknek a nevét, amelyben a feladat fut.

    Ha például általánosítani szeretné az előző feladatot, hogy bármely Azure-tárolóregisztrációs adatbázisban működjön, hivatkozzon a rendszerkép neve $Registry változóra:

    version: v1.1.0
    steps:
      - cmd: $Registry/myimage:mytag
    

Titkos kódkötetek elérése

A volumes tulajdonság lehetővé teszi a kötetek és titkos tartalmaik megadását build és cmd a tevékenységek lépéseit. Az egyes lépéseken belül egy választható volumeMounts tulajdonság felsorolja azokat a köteteket és a hozzájuk tartozó tárolóútvonalakat, amelyeket az adott lépésben csatlakoztatni szeretne a tárolóhoz. A titkos kódok fájlként vannak megadva az egyes kötetek csatlakoztatási útvonalán.

Hajtsa végre a feladatot, és csatlakoztassa a két titkos kulcsot egy lépéshez: az egyik egy kulcstartóban, a másik pedig a parancssorban van megadva:

az acr run -f mounts-secrets.yaml --set-secret mysecret=abcdefg123456 https://github.com/Azure-Samples/acr-tasks.git
# This template demonstrates mounting a custom volume into a container at a CMD step
secrets:
  - id: sampleSecret
    keyvault: https://myacbvault2.vault.azure.net/secrets/SampleSecret # Replace with valid keyvault with access

volumes:
  - name: mysecrets
    secret:
      mysecret1: {{.Secrets.sampleSecret | b64enc}}
      mysecret2: {{.Values.mysecret | b64enc}}

steps:
  - cmd: bash cat /run/test/mysecret1 /run/test/mysecret2
    volumeMounts:
      - name: mysecrets
        mountPath: /run/test

Tevékenységlépés tulajdonságai

Minden lépéstípus számos, a típusának megfelelő tulajdonságot támogat. Az alábbi táblázat az összes elérhető lépéstulajdonságt meghatározza. Nem minden lépéstípus támogatja az összes tulajdonságot. Ha meg szeretné nézni, hogy ezek közül a tulajdonságok közül melyik érhető el az egyes lépéstípusokhoz, tekintse meg a parancsmag, a build és a leküldéses lépéstípus referenciaszakaszait.

Tulajdonság Típus Választható Description Alapértelmezett érték
detach logikai Yes Azt jelzi, hogy a tárolót le kell-e választani futás közben. false
disableWorkingDirectoryOverride logikai Yes A felülbírálási funkció letiltása workingDirectory . Ezzel kombinálva workingDirectory teljes mértékben szabályozhatja a tároló munkakönyvtárát. false
entryPoint sztring Igen Felülbírálja egy [ENTRYPOINT] lépés tárolójának értékét. None
env [sztring, sztring, ...] Yes A lépés környezeti változóit meghatározó formátumú sztringek key=value tömbje. None
expose [sztring, sztring, ...] Yes A tárolóból közzétett portok tömbje. None
id sztring Igen Egyedileg azonosítja a tevékenységen belüli lépést. A tevékenység egyéb lépései hivatkozhatnak egy lépésre id, például a függőség-ellenőrzésre a következővel when: .

A id a futó tároló neve is. A feladat más tárolóiban futó folyamatok hivatkozhatnak a id DNS-gazdagép nevére, vagy például a docker-naplók [id] használatával való elérésére.
acb_step_%d, ahol %d a YAML-fájlban a lépés felső részének 0-alapú indexe
ignoreErrors logikai Yes A lépés sikeresként való megjelölése függetlenül attól, hogy hiba történt-e a tároló végrehajtása során. false
isolation sztring Igen A tároló elkülönítési szintje. default
keep logikai Yes Azt jelzi, hogy a lépés tárolóját a végrehajtás után meg kell-e őrizni. false
network object Yes Azonosítja azt a hálózatot, amelyen a tároló fut. None
ports [sztring, sztring, ...] Yes A tárolóból a gazdagépre közzétett portok tömbje. None
pull logikai Yes Kényszerítse-e a tároló lekérését a végrehajtás előtt, hogy megakadályozza a gyorsítótárazási viselkedést. false
privileged logikai Yes Azt határozza meg, hogy a tárolót emelt szintű módban szeretné-e futtatni. false
repeat int Yes A tároló végrehajtásának megismétlésére vonatkozó újrapróbálkozások száma. 0
retries int Yes A megkísérlendő újrapróbálkozások száma, ha egy tároló végrehajtása meghiúsul. Az újrapróbálkozást csak akkor kísérli meg a rendszer, ha egy tároló kilépési kódja nem nulla. 0
retryDelay int (másodperc) Yes A tároló végrehajtásának újrapróbálkozása közötti késleltetés másodpercben. 0
secret object Yes Azonosítja az Azure-erőforrásokhoz tartozó Azure Key Vault titkos vagy felügyelt identitást. None
startDelay int (másodperc) Yes A tároló végrehajtásának késleltetése másodpercben. 0
timeout int (másodperc) Yes Egy lépés legfeljebb másodpercben hajtható végre a megszakítás előtt. 600
when [sztring, sztring, ...] Yes Konfigurálja egy lépés függőségét egy vagy több más lépéshez a tevékenységen belül. None
user sztring Igen Egy tároló felhasználóneve vagy UID azonosítója None
workingDirectory sztring Igen Beállítja a munkakönyvtárat egy lépéshez. Alapértelmezés szerint az ACR Tasks létrehoz egy gyökérkönyvtárat munkakönyvtárként. Ha azonban a build több lépésből áll, a korábbi lépések ugyanazt a munkakönyvtárat megadva megoszthatják az összetevőket a későbbi lépésekkel. c:\workspace Windows vagy /workspace Linux rendszeren

volumeMount

A volumeMount objektum a következő tulajdonságokkal rendelkezik.

Tulajdonság Típus Választható Description Alapértelmezett érték
name sztring No A csatlakoztatni kívánt kötet neve. Pontosan meg kell egyeznie egy volumes tulajdonság nevével. None
mountPath sztring nem A tárolóban lévő fájlok csatlakoztatásának abszolút elérési útja. None

Példák: Tevékenységlépés tulajdonságai

Példa: azonosító

Hozzon létre két rendszerképet, és instancing egy funkcionális tesztrendszerképet. Minden lépést egy egyedi id azonosító azonosít, amely a tevékenységhivatkozás többi lépése a tulajdonságukban when található.

az acr run -f when-parallel-dependent.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
  # build website and func-test images, concurrently
  - id: build-hello-world
    build: -t $Registry/hello-world:$ID -f hello-world.dockerfile .
    when: ["-"]
  - id: build-hello-world-test
    build: -t hello-world-test -f hello-world.dockerfile .
    when: ["-"]
  # run built images to be tested
  - id: hello-world
    cmd: $Registry/hello-world:$ID
    when: ["build-hello-world"]
  - id: func-tests
    cmd: hello-world-test
    env:
      - TEST_TARGET_URL=hello-world
    when: ["hello-world"]
  # push hello-world if func-tests are successful  
  - push: ["$Registry/hello-world:$ID"]
    when: ["func-tests"]

Példa: amikor

A when tulajdonság határozza meg egy lépés függőségét a tevékenység más lépéseihez. Két paraméterértéket támogat:

  • when: ["-"] – Azt jelzi, hogy a többi lépés nem függ egymástól. A megadott when: ["-"] lépés azonnal megkezdi a végrehajtást, és lehetővé teszi az egyidejű lépésvégrehajtást.
  • when: ["id1", "id2"]– Azt jelzi, hogy a lépés az "id1" és id az "id2" lépésektől id függ. Ez a lépés mindaddig nem lesz végrehajtva, amíg az "id1" és az "id2" lépések be nem fejeződnek.

Ha when nincs megadva egy lépésben, akkor ez a lépés a fájl előző lépésének acr-task.yaml befejezésétől függ.

Szekvenciális lépés végrehajtása a nélkül when:

az acr run -f when-sequential-default.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
    - cmd: bash echo one
    - cmd: bash echo two
    - cmd: bash echo three

Szekvenciális lépés végrehajtása a következővel when:

az acr run -f when-sequential-id.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
    - id: step1
      cmd: bash echo one
    - id: step2
      cmd: bash echo two
      when: ["step1"]
    - id: step3
      cmd: bash echo three
      when: ["step2"]

Párhuzamos rendszerképek buildelése:

az acr run -f when-parallel.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
  # build website and func-test images, concurrently
  - id: build-hello-world
    build: -t $Registry/hello-world:$ID -f hello-world.dockerfile .
    when: ["-"]
  - id: build-hello-world-test
    build: -t hello-world-test -f hello-world.dockerfile .
    when: ["-"]

Párhuzamos rendszerképek összeállítása és függő tesztelése:

az acr run -f when-parallel-dependent.yaml https://github.com/Azure-Samples/acr-tasks.git
version: v1.1.0
steps:
  # build website and func-test images, concurrently
  - id: build-hello-world
    build: -t $Registry/hello-world:$ID -f hello-world.dockerfile .
    when: ["-"]
  - id: build-hello-world-test
    build: -t hello-world-test -f hello-world.dockerfile .
    when: ["-"]
  # run built images to be tested
  - id: hello-world
    cmd: $Registry/hello-world:$ID
    when: ["build-hello-world"]
  - id: func-tests
    cmd: hello-world-test
    env:
      - TEST_TARGET_URL=hello-world
    when: ["hello-world"]
  # push hello-world if func-tests are successful  
  - push: ["$Registry/hello-world:$ID"]
    when: ["func-tests"]

Változók futtatása

Az ACR Tasks tartalmaz egy alapértelmezett változókészletet, amely a feladatlépések végrehajtásához érhető el. Ezek a változók a formátummal {{.Run.VariableName}}érhetők el, ahol VariableName az alábbiak egyike található:

  • Run.ID
  • Run.SharedVolume
  • Run.Registry
  • Run.RegistryName
  • Run.Date
  • Run.OS
  • Run.Architecture
  • Run.Commit
  • Run.Branch
  • Run.TaskName

A változónevek általában magától értetődőek. A gyakran használt változók részletes leírását itt találja. A YAML-verziótól v1.1.0a legtöbb futtatott változó helyett használhat egy rövidített, előre definiált feladataliast . Például a helyett {{.Run.Registry}}használja az aliast $Registry .

Run.ID

Minden futtatás, keresztül az acr runvagy eseményindítón alapuló, a segítségével az acr task createlétrehozott feladatok végrehajtása egyedi azonosítóval rendelkezik. Az azonosító a futtatás alatt álló futtatásnak felel meg.

Általában egy rendszerkép egyedi címkézéséhez használatos:

version: v1.1.0
steps:
    - build: -t $Registry/hello-world:$ID .

Run.SharedVolume

Az összes feladatlépés által elérhető megosztott kötet egyedi azonosítója. A kötet windowsos vagy /workspace Linux rendszeren van csatlakoztatvac:\workspace.

Run.Registry

A beállításjegyzék teljes kiszolgálóneve. Általában arra a beállításjegyzékre hivatkoznak, ahol a feladat fut.

version: v1.1.0
steps:
  - build: -t $Registry/hello-world:$ID .

Run.RegistryName

A tárolóregisztrációs adatbázis neve. Általában olyan feladatlépésekben használatosak, amelyekhez nincs szükség teljes kiszolgálónévre, például olyan lépésekben, cmd amelyek Azure CLI-parancsokat futtatnak a regisztrációs adatbázisokon.

version 1.1.0
steps:
# List repositories in registry
- cmd: az login --identity
- cmd: az acr repository list --name $RegistryName

Futtatás.dátum

A futtatás aktuális UTC-időpontja.

Run.Commit

A GitHub-adattárban történő véglegesítés által aktivált feladatok esetében a véglegesítés azonosítója.

Run.Branch

Egy GitHub-adattárban történő véglegesítés által aktivált feladat esetében a ág neve.

Aliasok

v1.1.0Az ACR Tasks mostantól támogatja azokat az aliasokat, amelyek a végrehajtásukkor elérhetők a feladatlépésekhez. Az aliasok fogalma hasonló a bashben és más parancshéjakban támogatott aliasokhoz (parancsikonokhoz).

Egy alias használatával egyetlen szó beírásával bármilyen parancsot vagy parancscsoportot elindíthat (beleértve a beállításokat és a fájlneveket is).

Az ACR Tasks számos előre definiált aliast és létrehozott egyéni aliast is támogat.

Előre definiált aliasok

A futtatási változók helyett a következő feladataliasok használhatók:

Alias Változó futtatása
ID Run.ID
SharedVolume Run.SharedVolume
Registry Run.Registry
RegistryName Run.RegistryName
Date Run.Date
OS Run.OS
Architecture Run.Architecture
Commit Run.Commit
Branch Run.Branch

A feladat lépéseiben előzze meg az aliast az $ irányelvvel, ahogy ebben a példában:

version: v1.1.0
steps:
  - build: -t $Registry/hello-world:$ID -f hello-world.dockerfile .

Képaliasok

Az alábbi aliasok mindegyike egy stabil rendszerképre mutat a Microsoft Container Registryben (MCR). Mindegyikre hivatkozhat a cmd Feladatfájl szakaszában, direktíva használata nélkül.

Alias Kép
acr mcr.microsoft.com/acr/acr-cli:0.5
az mcr.microsoft.com/acr/azure-cli:7ee1d7f
bash mcr.microsoft.com/acr/bash:7ee1d7f
curl mcr.microsoft.com/acr/curl:7ee1d7f

Az alábbi példafeladat több aliast használ a 7 napnál régebbi képcímkék törléséhez a samples/hello-world futtatási beállításjegyzék adattárában:

version: v1.1.0
steps:
  - cmd: acr tag list --registry $RegistryName --repository samples/hello-world
  - cmd: acr purge --registry $RegistryName --filter samples/hello-world:.* --ago 7d

Egyéni alias

Definiáljon egy egyéni aliast a YAML-fájlban, és használja az alábbi példában látható módon. Az aliasok csak alfanumerikus karaktereket tartalmazhatnak. Az aliasok kibontásához az alapértelmezett direktíva a $ karakter.

version: v1.1.0
alias:
  values:
    repo: myrepo
steps:
  - build: -t $Registry/$repo/hello-world:$ID -f Dockerfile .

Egyéni aliasdefiníciókhoz távoli vagy helyi YAML-fájlra hivatkozhat. Az alábbi példa egy YAML-fájlra mutat az Azure Blob Storage-ban:

version: v1.1.0
alias:
  src:  # link to local or remote custom alias files
    - 'https://link/to/blob/remoteAliases.yml?readSasToken'
[...]

Következő lépések

A többlépéses feladatok áttekintését a Többlépéses buildelési, tesztelési és javítási feladatok futtatása az ACR-feladatokban című témakörben tekintheti meg.

Az egylépéses buildekért tekintse meg az ACR Tasks áttekintését.