ACR Tasks-referens: YAML
Uppgiftsdefinition med flera steg i ACR Tasks ger en containercentrerad beräkningsprimitiver som fokuserar på att skapa, testa och korrigera containrar. Den här artikeln beskriver kommandon, parametrar, egenskaper och syntax för YAML-filer som definierar dina uppgifter i flera steg.
Den här artikeln innehåller referens för att skapa YAML-filer för flera steg för ACR Tasks. Om du vill ha en introduktion till ACR Tasks kan du läsa översikten över ACR Tasks.
filformatet acr-task.yaml
ACR Tasks har stöd för aktivitetsdeklaration i flera steg i YAML-standardsyntaxen. Du definierar en uppgifts steg i en YAML-fil. Du kan sedan köra uppgiften manuellt genom att skicka filen till kommandot az acr run . Du kan också använda filen för att skapa en uppgift med az acr task create som utlöses automatiskt på en Git-incheckning, en basavbildningsuppdatering eller ett schema. Även om den här artikeln refererar till acr-task.yaml
som den fil som innehåller stegen, stöder ACR Tasks alla giltiga filnamn med ett tillägg som stöds.
De översta acr-task.yaml
primitiverna är uppgiftsegenskaper, stegtyper och stegegenskaper:
- Uppgiftsegenskaperna gäller för alla steg under aktivitetskörningen. Det finns flera globala uppgiftsegenskaper, bland annat:
version
stepTimeout
workingDirectory
- Typer av uppgiftssteg representerar de typer av åtgärder som kan utföras i en aktivitet. Det finns tre stegtyper:
build
push
cmd
- Egenskaper för aktivitetssteg är parametrar som gäller för ett enskilt steg. Det finns flera stegegenskaper, bland annat:
startDelay
timeout
when
- ... och många fler.
Basformatet för en acr-task.yaml
fil, inklusive några vanliga stegegenskaper, följer. Även om det inte är en fullständig representation av alla tillgängliga stegegenskaper eller användning av stegtyper ger den en snabb översikt över det grundläggande filformatet.
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.
Filnamnstillägg för aktivitet som stöds
ACR Tasks har reserverat flera filnamnstillägg, inklusive .yaml
, som bearbetas som en aktivitetsfil. Alla tillägg som inte finns i följande lista anses av ACR Tasks vara en Dockerfile: .yaml, .yml, .toml, .json, .sh, .bash, .zsh, .ps1, .ps, .cmd, .bat, .ts, .js, .php, .py, .rb, .lua
YAML är det enda filformat som för närvarande stöds av ACR Tasks. De andra filnamnstilläggen är reserverade för eventuell framtida support.
Köra exempeluppgifterna
Det finns flera exempeluppgiftsfiler som refereras i följande avsnitt i den här artikeln. Exempeluppgifterna finns på en offentlig GitHub-lagringsplats, Azure-Samples/acr-tasks. Du kan köra dem med Azure CLI-kommandot az acr run. Exempelkommandona liknar följande:
az acr run -f build-push-hello-world.yaml https://github.com/Azure-Samples/acr-tasks.git
Formateringen av exempelkommandona förutsätter att du har konfigurerat ett standardregister i Azure CLI, så de utelämnar parametern --registry
. Om du vill konfigurera ett standardregister använder du kommandot az config med set
kommandot som accepterar ett defaults.acr=REGISTRY_NAME
nyckelvärdepar.
Om du till exempel vill konfigurera Azure CLI med ett standardregister med namnet "myregistry":
az config set defaults.acr=myregistry
Uppgiftsegenskaper
Uppgiftsegenskaper visas vanligtvis överst i en acr-task.yaml
fil och är globala egenskaper som gäller under hela körningen av aktivitetsstegen. Vissa av dessa globala egenskaper kan åsidosättas i ett enskilt steg.
Egenskap | Typ | Valfritt | Beskrivning | Åsidosättning stöds | Standardvärde |
---|---|---|---|---|---|
version |
sträng | Ja | Den version av acr-task.yaml filen som tolkas av ACR Tasks-tjänsten. ACR Tasks strävar efter att upprätthålla bakåtkompatibilitet, men det här värdet gör att ACR Tasks kan upprätthålla kompatibiliteten i en definierad version. Om det är ospecificerat är standardvärdet den senaste versionen. |
No | Ingen |
stepTimeout |
int (sekunder) | Yes | Det maximala antalet sekunder som ett steg kan köras. Om egenskapen anges för stepTimeout en aktivitet anges standardegenskapen timeout för alla steg. Om egenskapen anges i timeout ett steg åsidosätter den egenskapen stepTimeout som tillhandahålls av aktiviteten.Summan av timeout-värdena för ett steg för en aktivitet ska vara lika med värdet för aktivitetens körningsegenskap timeout (till exempel genom att skicka --timeout till az acr task create kommandot). Om körningsvärdet för aktiviteterna är mindre prioriteras timeout det. |
Yes | 600 (10 minuter) |
workingDirectory |
sträng | Ja | Arbetskatalogen för containern under körning. Om egenskapen anges för en aktivitet anges standardegenskapen workingDirectory för alla steg. Om det anges i ett steg åsidosätter den egenskapen som tillhandahålls av aktiviteten. |
Yes | c:\workspace i Windows eller /workspace i Linux |
env |
[sträng, sträng, ...] | Yes | Matris med strängar i key=value format som definierar miljövariablerna för uppgiften. Om egenskapen anges för en aktivitet anges standardegenskapen env för alla steg. Om det anges i ett steg åsidosätter den alla miljövariabler som ärvts från aktiviteten. |
Yes | Ingen |
secrets |
[hemlighet, hemlighet, ...] | Yes | Matris med hemliga objekt. | No | Ingen |
networks |
[nätverk, nätverk, ...] | Yes | Matris med nätverksobjekt . | No | Ingen |
volumes |
[volym, volym, ...] | Yes | Matris med volymobjekt . Anger volymer med källinnehåll som ska monteras i ett steg. | No | Ingen |
hemlighet
Det hemliga objektet har följande egenskaper.
Egenskap | Typ | Valfritt | Beskrivning | Standardvärde |
---|---|---|---|---|
id |
sträng | No | Hemlighetens identifierare. | Ingen |
keyvault |
sträng | Ja | Url:en för Azure Key Vault Secret. | Ingen |
clientID |
sträng | Ja | Klient-ID för den användartilldelade hanterade identiteten för Azure-resurser . | Ingen |
network
Nätverksobjektet har följande egenskaper.
Egenskap | Typ | Valfritt | Beskrivning | Standardvärde |
---|---|---|---|---|
name |
sträng | No | Namnet på nätverket. | Ingen |
driver |
sträng | Ja | Drivrutinen för att hantera nätverket. | Ingen |
ipv6 |
boolesk | Yes | Om IPv6-nätverk är aktiverat. | false |
skipCreation |
boolesk | Yes | Om du vill hoppa över skapandet av nätverket. | false |
isDefault |
boolesk | Yes | Om nätverket är ett standardnätverk som tillhandahålls med Azure Container Registry. | false |
volym
Volymobjektet har följande egenskaper.
Egenskap | Typ | Valfritt | Beskrivning | Standardvärde |
---|---|---|---|---|
name |
sträng | No | Namnet på volymen som ska monteras. Kan bara innehålla alfanumeriska tecken, "-" och "_". | Ingen |
secret |
map[string]string | No | Varje nyckel på kartan är namnet på en fil som skapats och fyllts i i volymen. Varje värde är strängversionen av hemligheten. Hemliga värden måste vara Base64-kodade. | Ingen |
Aktivitetsstegstyper
ACR Tasks har stöd för tre steg. Varje stegtyp stöder flera egenskaper, som beskrivs i avsnittet för varje stegtyp.
Stegtyp | Beskrivning |
---|---|
build |
Skapar en containeravbildning med välbekant docker build syntax. |
push |
Kör en docker push av nyligen skapade eller återtagna avbildningar till ett containerregister. Azure Container Registry, andra privata register och offentliga Docker Hub stöds. |
cmd |
Kör en container som ett kommando med parametrar som skickas till containerns [ENTRYPOINT] . Stegtypen cmd stöder parametrar som env , detach och andra välbekanta docker run kommandoalternativ, som aktiverar enhets- och funktionstestning med samtidig containerkörning. |
skapa
Skapa en containeravbildning. Stegtypen build
representerar ett säkert sätt att köra docker build
i molnet som en förstklassig primitiv.
Syntax: build
version: v1.1.0
steps:
- [build]: -t [imageName]:[tag] -f [Dockerfile] [context]
[property]: [value]
Kör kommandot az acr runför att hämta docker-versionen.
az acr run -r $ACR_NAME --cmd "docker version" /dev/null
Lägg till miljövariabel i DOCKER_BUILDKIT=1
yaml-filen för att aktivera buildkit
och använda secret
med buildkit
.
Stegtypen build
stöder parametrarna i följande tabell. Stegtypen build
stöder även alla byggalternativ för docker-kompileringskommandot , till exempel --build-arg
för att ange variabler för byggtid.
Parameter | Beskrivning | Valfritt |
---|---|---|
-t | --image |
Definierar den fullständigt kvalificerade image:tag avbildningen.Eftersom avbildningar kan användas för valideringar av inre uppgifter, till exempel funktionella tester, krävs push inte alla avbildningar i ett register. Men för att kunna instansa en bild i en uppgiftskörning behöver avbildningen ett namn att referera till.Till skillnad från az acr build ger körning av ACR Tasks inte standardbeteendet för push. Med ACR Tasks förutsätter standardscenariot möjligheten att skapa, validera och sedan push-överföra en avbildning. Se Push för hur du kan push-överföra skapade avbildningar. |
Yes |
-f | --file |
Anger dockerfile som skickas till docker build . Om inget anges antas dockerfile-standardfilen i kontextens rot. Om du vill ange en Dockerfile skickar du filnamnet i förhållande till kontextens rot. |
Yes |
context |
Rotkatalogen skickades till docker build . Rotkatalogen för varje aktivitet är inställd på en delad workingDirectory och innehåller roten för den associerade Git-klonade katalogen. |
No |
Egenskaper: build
Stegtypen build
stöder följande egenskaper. Hitta information om dessa egenskaper i avsnittet Egenskaper för aktivitetssteg i den här artikeln.
Egenskaper | Typ | Obligatorisk |
---|---|---|
detach |
boolesk | Valfritt |
disableWorkingDirectoryOverride |
boolesk | Valfritt |
entryPoint |
sträng | Valfritt |
env |
[sträng, sträng, ...] | Valfritt |
expose |
[sträng, sträng, ...] | Valfritt |
id |
sträng | Valfritt |
ignoreErrors |
boolesk | Valfritt |
isolation |
sträng | Valfritt |
keep |
boolesk | Valfritt |
network |
objekt | Valfritt |
ports |
[sträng, sträng, ...] | Valfritt |
pull |
boolesk | Valfritt |
repeat |
int | Valfritt |
retries |
int | Valfritt |
retryDelay |
int (sekunder) | Valfritt |
secret |
objekt | Valfritt |
startDelay |
int (sekunder) | Valfritt |
timeout |
int (sekunder) | Valfritt |
volumeMount |
objekt | Valfritt |
when |
[sträng, sträng, ...] | Valfritt |
workingDirectory |
sträng | Valfritt |
Exempel: build
Skapa avbildning – kontext i roten
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 .
Skapa avbildning – kontext i underkatalog
version: v1.1.0
steps:
- build: -t $Registry/hello-world -f hello-world.dockerfile ./subDirectory
Tryck
Push-överför en eller flera skapade eller återtagna avbildningar till ett containerregister. Stöder push-överföring till privata register som Azure Container Registry eller till offentliga Docker Hub.
Syntax: push
Stegtypen push
stöder en samling avbildningar. YAML-samlingssyntax stöder infogade och kapslade format. Push-överföring av en enskild bild representeras vanligtvis med infogad syntax:
version: v1.1.0
steps:
# Inline YAML collection syntax
- push: ["$Registry/hello-world:$ID"]
Använd kapslad syntax vid push-överföring av flera bilder för ökad läsbarhet:
version: v1.1.0
steps:
# Nested YAML collection syntax
- push:
- $Registry/hello-world:$ID
- $Registry/hello-world:latest
Egenskaper: push-överföring
Stegtypen push
stöder följande egenskaper. Mer information om de här egenskaperna finns i avsnittet Egenskaper för aktivitetssteg i den här artikeln.
Egenskap | Typ | Obligatorisk |
---|---|---|
env |
[sträng, sträng, ...] | Valfritt |
id |
sträng | Valfritt |
ignoreErrors |
boolesk | Valfritt |
startDelay |
int (sekunder) | Valfritt |
timeout |
int (sekunder) | Valfritt |
when |
[sträng, sträng, ...] | Valfritt |
Exempel: push
Skicka flera bilder
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
Skapa, push-överföra och köra
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
Stegtypen cmd
kör en container.
Syntax: cmd
version: v1.1.0
steps:
- [cmd]: [containerImage]:[tag (optional)] [cmdParameters to the image]
Egenskaper: cmd
Stegtypen cmd
stöder följande egenskaper:
Egenskap | Typ | Obligatorisk |
---|---|---|
detach |
boolesk | Valfritt |
disableWorkingDirectoryOverride |
boolesk | Valfritt |
entryPoint |
sträng | Valfritt |
env |
[sträng, sträng, ...] | Valfritt |
expose |
[sträng, sträng, ...] | Valfritt |
id |
sträng | Valfritt |
ignoreErrors |
boolesk | Valfritt |
isolation |
sträng | Valfritt |
keep |
boolesk | Valfritt |
network |
objekt | Valfritt |
ports |
[sträng, sträng, ...] | Valfritt |
pull |
boolesk | Valfritt |
repeat |
int | Valfritt |
retries |
int | Valfritt |
retryDelay |
int (sekunder) | Valfritt |
secret |
objekt | Valfritt |
startDelay |
int (sekunder) | Valfritt |
timeout |
int (sekunder) | Valfritt |
volumeMount |
objekt | Valfritt |
when |
[sträng, sträng, ...] | Valfritt |
workingDirectory |
sträng | Valfritt |
Du hittar information om dessa egenskaper i avsnittet Egenskaper för aktivitetssteg i den här artikeln.
Exempel: cmd
Köra hello-world-avbildning
Det här kommandot kör aktivitetsfilenhello-world.yaml
, som refererar till hello-world-avbildningen på 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
Kör bash-bild och eko "hello world"
Det här kommandot kör aktivitetsfilenbash-echo.yaml
, som refererar till bash-avbildningen på 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
Kör en specifik bash-avbildningstagg
Om du vill köra en viss avbildningsversion anger du taggen cmd
i .
Det här kommandot kör aktivitetsfilen bash-echo-3.yaml
som refererar till bash:3.0-avbildningen på 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
Köra anpassade avbildningar
Stegtypen cmd
refererar till bilder med standardformatet docker run
. Avbildningar som inte föregås av ett register antas komma från docker.io. Föregående exempel kan också representeras som:
version: v1.1.0
steps:
- cmd: docker.io/bash:3.0 echo hello world
Med hjälp av standardreferenskonventionen docker run
cmd
för avbildningar kan du köra avbildningar från alla privata register eller offentliga Docker Hub. Om du refererar till avbildningar i samma register där ACR-aktiviteten körs behöver du inte ange några registerautentiseringsuppgifter.
Kör en avbildning som kommer från ett Azure-containerregister. I följande exempel förutsätts att du har ett register med namnet
myregistry
och en anpassad avbildningmyimage:mytag
.version: v1.1.0 steps: - cmd: myregistry.azurecr.io/myimage:mytag
Generalisera registerreferensen med en Körningsvariabel eller ett alias
I stället för att hårdkoda registernamnet i en
acr-task.yaml
fil kan du göra det mer portabelt med hjälp av en Kör-variabel eller ett alias. VariabelnRun.Registry
eller$Registry
aliaset expanderas vid körning till namnet på registret där aktiviteten körs.Om du till exempel vill generalisera föregående uppgift så att den fungerar i alla Azure-containerregister, refererar du till variabeln $Registry i avbildningsnamnet:
version: v1.1.0 steps: - cmd: $Registry/myimage:mytag
Åtkomst till hemliga volymer
Egenskapen volumes
tillåter att volymer och deras hemliga innehåll anges för build
och cmd
steg i en aktivitet. I varje steg visar en valfri volumeMounts
egenskap de volymer och motsvarande containersökvägar som ska monteras i containern i det steget. Hemligheter tillhandahålls som filer på varje volyms monteringssökväg.
Kör en uppgift och montera två hemligheter i ett steg: en som lagras i ett nyckelvalv och en som anges på kommandoraden:
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
Egenskaper för aktivitetssteg
Varje stegtyp stöder flera egenskaper som är lämpliga för dess typ. I följande tabell definieras alla tillgängliga stegegenskaper. Alla stegtyper stöder inte alla egenskaper. Information om vilka av dessa egenskaper som är tillgängliga för varje stegtyp finns i referensavsnitten cmd, build och push-stegtyp .
Egenskap | Typ | Valfritt | Beskrivning | Standardvärde |
---|---|---|---|---|
detach |
boolesk | Yes | Om containern ska kopplas från när den körs. | false |
disableWorkingDirectoryOverride |
boolesk | Yes | Om du vill inaktivera åsidosättningsfunktioner workingDirectory . Använd detta i kombination med workingDirectory för att ha fullständig kontroll över containerns arbetskatalog. |
false |
entryPoint |
sträng | Ja | Åsidosätter containern för [ENTRYPOINT] ett steg. |
Ingen |
env |
[sträng, sträng, ...] | Yes | Matris med strängar i key=value format som definierar miljövariablerna för steget. |
Ingen |
expose |
[sträng, sträng, ...] | Yes | Matris med portar som exponeras från containern. | Ingen |
id |
sträng | Ja | Identifierar unikt steget i uppgiften. Andra steg i uppgiften kan referera till ett stegs id , till exempel för beroendekontroll med when .id är också containerns namn som körs. Processer som körs i andra containrar i aktiviteten kan referera till som dess DNS-värdnamn, eller för att komma åt den med docker-loggar [id], till id exempel. |
acb_step_%d , där %d är det 0-baserade indexet för steget uppifrån och ned i YAML-filen |
ignoreErrors |
boolesk | Yes | Om steget ska markeras som lyckat oavsett om ett fel uppstod under containerkörningen. | false |
isolation |
sträng | Ja | Isoleringsnivån för containern. | default |
keep |
boolesk | Yes | Om stegets container ska behållas efter körningen. | false |
network |
objekt | Yes | Identifierar ett nätverk där containern körs. | Ingen |
ports |
[sträng, sträng, ...] | Yes | Matris med portar som publiceras från containern till värden. | Ingen |
pull |
boolesk | Yes | Om du vill tvinga fram en hämtning av containern innan du kör den för att förhindra cachelagring. | false |
privileged |
boolesk | Yes | Om containern ska köras i privilegierat läge. | false |
repeat |
int | Yes | Antalet återförsök för att upprepa körningen av en container. | 0 |
retries |
int | Yes | Antalet försök att försöka igen om en container inte kan köras. Ett nytt försök görs bara om en containers slutkod inte är noll. | 0 |
retryDelay |
int (sekunder) | Yes | Fördröjningen i sekunder mellan återförsök av en containers körning. | 0 |
secret |
objekt | Yes | Identifierar en Azure-Key Vault hemlighet eller hanterad identitet för Azure-resurser. | Ingen |
startDelay |
int (sekunder) | Yes | Antal sekunder för att fördröja körningen av en container. | 0 |
timeout |
int (sekunder) | Yes | Maximalt antal sekunder som ett steg kan köras innan det avslutas. | 600 |
when |
[sträng, sträng, ...] | Yes | Konfigurerar ett stegs beroende av ett eller flera andra steg i uppgiften. | Ingen |
user |
sträng | Ja | Användarnamnet eller UID för en container | Ingen |
workingDirectory |
sträng | Ja | Anger arbetskatalogen för ett steg. Som standard skapar ACR Tasks en rotkatalog som arbetskatalog. Men om bygget innehåller flera steg kan tidigare steg dela artefakter med senare steg genom att ange samma arbetskatalog. | c:\workspace i Windows eller /workspace i Linux |
volumeMount
VolumeMount-objektet har följande egenskaper.
Egenskap | Typ | Valfritt | Beskrivning | Standardvärde |
---|---|---|---|---|
name |
sträng | No | Namnet på volymen som ska monteras. Måste exakt matcha namnet från en volumes egenskap. |
Ingen |
mountPath |
sträng | nej | Den absoluta sökvägen för att montera filer i containern. | Ingen |
Exempel: Egenskaper för aktivitetssteg
Exempel: ID
Skapa två avbildningar som instancing en funktionell testbild. Varje steg identifieras med ett unikt id
som andra steg i uppgiftsreferensen i deras when
egenskap.
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"]
Exempel: när
Egenskapen when
anger ett stegs beroende av andra steg i aktiviteten. Den stöder två parametervärden:
when: ["-"]
– Anger inget beroende av andra steg. Ett steg somwhen: ["-"]
anger börjar köras omedelbart och aktiverar samtidiga stegkörningar.when: ["id1", "id2"]
– Anger att steget är beroende av steg medid
"id1" ochid
"id2". Det här steget körs inte förrän både "id1" och "id2" har slutförts.
Om when
inte anges i ett steg beror det steget på slutförandet av föregående steg i acr-task.yaml
filen.
Sekventiell stegkörning utan 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
Sekventiell stegkörning med 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"]
Parallella avbildningar:
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: ["-"]
Parallell avbildningsversion och beroende testning:
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"]
Köra variabler
ACR Tasks innehåller en standarduppsättning variabler som är tillgängliga för uppgiftssteg när de körs. Dessa variabler kan nås med formatet {{.Run.VariableName}}
, där VariableName
är något av följande:
Run.ID
Run.SharedVolume
Run.Registry
Run.RegistryName
Run.Date
Run.OS
Run.Architecture
Run.Commit
Run.Branch
Run.TaskName
Variabelnamnen är vanligtvis självförklarande. Information följer för vanliga variabler. Från och med YAML-versionen v1.1.0
kan du använda ett förkortat, fördefinierat uppgiftsalias i stället för de flesta körningsvariabler. Använd till exempel aliaset $Registry
i stället {{.Run.Registry}}
för .
Run.ID
Varje Körning, via az acr run
eller utlösarbaserad körning av uppgifter som skapats via az acr task create
, har ett unikt ID. ID:t representerar den körning som körs för närvarande.
Används vanligtvis för att unikt tagga en bild:
version: v1.1.0
steps:
- build: -t $Registry/hello-world:$ID .
Run.SharedVolume
Den unika identifieraren för en delad volym som är tillgänglig för alla aktivitetssteg. Volymen monteras c:\workspace
på i Windows eller /workspace
i Linux.
Run.Registry
Registrets fullständigt kvalificerade servernamn. Används vanligtvis för att allmänt referera till registret där uppgiften körs.
version: v1.1.0
steps:
- build: -t $Registry/hello-world:$ID .
Run.RegistryName
Namnet på containerregistret. Används vanligtvis i aktivitetssteg som inte kräver ett fullständigt kvalificerat servernamn, cmd
till exempel steg som kör Azure CLI-kommandon i register.
version 1.1.0
steps:
# List repositories in registry
- cmd: az login --identity
- cmd: az acr repository list --name $RegistryName
Run.Date
Den aktuella UTC-tiden som körningen påbörjades.
Run.Commit
För en uppgift som utlöses av en incheckning till en GitHub-lagringsplats, incheckningsidentifieraren.
Run.Branch
För en uppgift som utlöses av en incheckning till en GitHub-lagringsplats, grennamnet.
Alias
Från och v1.1.0
med stöder ACR Tasks alias som är tillgängliga för uppgiftssteg när de körs. Alias liknar i begreppet alias (kommandogenvägar) som stöds i bash och vissa andra kommandogränssnitt.
Med ett alias kan du starta valfritt kommando eller en grupp med kommandon (inklusive alternativ och filnamn) genom att ange ett enda ord.
ACR Tasks stöder flera fördefinierade alias och även anpassade alias som du skapar.
Fördefinierade alias
Följande aktivitetsalias är tillgängliga för användning i stället för körningsvariabler:
Alias | Kör variabel |
---|---|
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 |
I uppgiftsstegen föregår du ett alias med $
-direktivet, som i det här exemplet:
version: v1.1.0
steps:
- build: -t $Registry/hello-world:$ID -f hello-world.dockerfile .
Bildalias
Vart och ett av följande alias pekar på en stabil avbildning i Microsoft Container Registry (MCR). Du kan referera till var och en av dem i cmd
avsnittet i en aktivitetsfil utan att använda ett direktiv.
Alias | Bild |
---|---|
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 |
I följande exempelaktivitet används flera alias för att rensa avbildningstaggar som är äldre än 7 dagar på lagringsplatsen samples/hello-world
i körningsregistret:
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
Anpassat alias
Definiera ett anpassat alias i YAML-filen och använd det enligt följande exempel. Ett alias får bara innehålla alfanumeriska tecken. Standarddirektivet för att expandera ett alias är $
tecknet .
version: v1.1.0
alias:
values:
repo: myrepo
steps:
- build: -t $Registry/$repo/hello-world:$ID -f Dockerfile .
Du kan länka till en fjärransluten eller lokal YAML-fil för anpassade aliasdefinitioner. Följande exempel länkar till en YAML-fil i Azure Blob Storage:
version: v1.1.0
alias:
src: # link to local or remote custom alias files
- 'https://link/to/blob/remoteAliases.yml?readSasToken'
[...]
Nästa steg
En översikt över uppgifter i flera steg finns i Köra uppgifter för att skapa, testa och korrigera flera steg i ACR Tasks.
Information om enstegsversioner finns i översikten över ACR Tasks.