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 .yaml
azt 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 build az 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 build Docker-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épemyimage: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. ARun.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 megadottwhen: ["-"]
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" ésid
az "id2" lépésektőlid
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.0
a 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 run
vagy eseményindítón alapuló, a segítségével az acr task create
lé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.0
Az 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.