Dela via


Referens för ACR-uppgifter: YAML

Aktivitetsdefinitioner i flera steg i ACR Tasks ger en containercentrerad beräkningspri primitiv 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-uppgifter. Om du vill ha en introduktion till ACR-uppgifter kan du läsa översikten över ACR-uppgifter.

filformatet acr-task.yaml

ACR Tasks stöder 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 vid 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:

  • Uppgiftsegenskaper gäller för alla steg under aktivitetskörningen. Det finns flera globala uppgiftsegenskaper, bland annat:
    • version
    • stepTimeout
    • workingDirectory
  • Aktivitetsstegstyper 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ör 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:

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.

Property Type 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 v1.0.0. Ej tillämpligt v1.0.0
stepTimeout int (sekunder) Ja Det maximala antalet sekunder som ett steg kan köras. Om egenskapen stepTimeout anges för en aktivitet anger den standardegenskapen timeout för alla steg. Om egenskapen timeout anges i ett steg åsidosätter den stepTimeout egenskap som tillhandahålls av uppgiften.

Summan av tidsgränsvä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 aktiviteternas körningsvärde timeout är mindre prioriteras det.
Ja 600 (10 minuter)
workingDirectory sträng Ja Arbetskatalogen för containern under körning. Om egenskapen anges för en aktivitet anger den standardegenskapen workingDirectory för alla steg. Om det anges i ett steg åsidosätter den egenskapen som tillhandahålls av aktiviteten. Ja c:\workspace i Windows eller /workspace i Linux
env [sträng, sträng, ...] Ja Matris med strängar i key=value format som definierar miljövariablerna för uppgiften. Om egenskapen anges för en aktivitet anger den standardegenskapen env för alla steg. Om det anges i ett steg åsidosätter det alla miljövariabler som ärvts från aktiviteten. Ja None
secrets [hemlighet, hemlighet, ...] Ja Matris med hemliga objekt. Nej Ingen
networks [nätverk, nätverk, ...] Ja Matris med nätverksobjekt . Nej Ingen
volumes [volym, volym, ...] Ja Matris med volymobjekt . Anger volymer med källinnehåll som ska monteras i ett steg. Nej Ingen

hemlighet

Det hemliga objektet har följande egenskaper.

Property Type Valfritt beskrivning Standardvärde
id sträng Nej Hemlighetens identifierare. Ingen
keyvault sträng Ja Url:en för Azure Key Vault-hemligheten. 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.

Property Type Valfritt beskrivning Standardvärde
name sträng Nej Namnet på nätverket. Ingen
driver sträng Ja Drivrutinen för att hantera nätverket. Ingen
ipv6 bool Ja Om IPv6-nätverk är aktiverat. false
skipCreation bool Ja Om du vill hoppa över skapande av nätverk. false
isDefault bool Ja Om nätverket är ett standardnätverk som tillhandahålls med Azure Container Registry. false

volym

Volymobjektet har följande egenskaper.

Property Type Valfritt beskrivning Standardvärde
name sträng Nej Namnet på volymen som ska monteras. Kan bara innehålla alfanumeriska tecken, "-" och "_". Ingen
secret map[string]string Nej 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

Typer av aktivitetssteg

ACR Tasks stöder tre stegtyper. 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 byggda eller återtagna avbildningar till ett containerregister. Azure Container Registry, andra privata register och den 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, detachoch andra välbekanta docker run kommandoalternativ som aktiverar enhets- och funktionstestning med samtidig containerkörning.

build

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övariabeln DOCKER_BUILDKIT=1 i 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 build-kommandot , till exempel --build-arg för att ange byggtidsvariabler.

Parameter Description Valfritt
-t | --image Definierar den fullständigt kvalificerade image:tag avbildningen.

Eftersom avbildningar kan användas för inre uppgiftsvalidering, till exempel funktionella tester, kräver push inte alla avbildningar till ett register. Men för att kunna instansa en bild i en aktivitetskörning behöver avbildningen ett namn att referera till.

Till skillnad från az acr buildger körning av ACR-uppgifter inte standardbeteende för push-överföring. Med ACR Tasks förutsätter standardscenariot möjligheten att skapa, verifiera och sedan push-överföra en avbildning. Se push-överföring för hur du kan push-överföra byggda avbildningar.
Ja
-f | --file Anger dockerfile som skickas till docker build. Om det inte anges antas dockerfile-standardfilen i kontextens rot. Om du vill ange en Dockerfile skickar du filnamnet i förhållande till kontextens rot. Ja
context Rotkatalogen skickades till docker build. Rotkatalogen för varje uppgift är inställd på en delad workingDirectory och innehåller roten för den associerade Git-klonade katalogen. Nej

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 Obligatoriskt
detach bool Valfritt
disableWorkingDirectoryOverride bool Valfritt
entryPoint sträng Valfritt
env [sträng, sträng, ...] Valfritt
expose [sträng, sträng, ...] Valfritt
id sträng Valfritt
ignoreErrors bool Valfritt
isolation sträng Valfritt
keep bool Valfritt
network objekt Valfritt
ports [sträng, sträng, ...] Valfritt
pull bool Valfritt
repeat heltal Valfritt
retries heltal 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

Dynamisk variabel som skickar in ACR-uppgifter

När du arbetar med ACR-uppgifter (Azure Container Registry) kan du behöva skicka olika värden till byggprocessen utan att ändra uppgiftsdefinitionen --set med hjälp av flaggan med az acr task run kommandot .

Exempel: Ange avbildningstagg vid körning

Anta att du har en ACR-uppgift definierad i en acr-task.yml fil med en platshållare för bildtaggen:

steps:
  - build: -t $Registry/hello-world:{{.Values.tag}}

Du kan utlösa uppgiften och ange variabeln tag till v2 vid körning med hjälp av följande Azure CLI-kommando:

az acr task run --registry myregistry --name mytask --set tag=v2

Det här kommandot startar ACR-uppgiften med namnet mytask och skapar avbildningen med hjälp av taggen v2 och åsidosättar platshållaren i acr-task.yml filen.

Med den här metoden kan du anpassa dina CI/CD-pipelines så att du dynamiskt kan justera parametrar baserat på dina aktuella behov utan att ändra uppgiftsdefinitionerna.

push

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 den offentliga Docker Hub.

Syntax: push

Stegtypen push stöder en samling avbildningar. YAML-samlingssyntaxen 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"]

För ökad läsbarhet använder du kapslad syntax vid push-överföring av flera bilder:

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

Egenskaper: push

Stegtypen push stöder följande egenskaper. Hitta information om dessa egenskaper i avsnittet Egenskaper för aktivitetssteg i den här artikeln.

Property Type Obligatoriskt
env [sträng, sträng, ...] Valfritt
id sträng Valfritt
ignoreErrors bool 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:

Property Type Obligatoriskt
detach bool Valfritt
disableWorkingDirectoryOverride bool Valfritt
entryPoint sträng Valfritt
env [sträng, sträng, ...] Valfritt
expose [sträng, sträng, ...] Valfritt
id sträng Valfritt
ignoreErrors bool Valfritt
isolation sträng Valfritt
keep bool Valfritt
network objekt Valfritt
ports [sträng, sträng, ...] Valfritt
pull bool Valfritt
repeat heltal Valfritt
retries heltal 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ör hello-world-avbildning

Det här kommandot kör aktivitetsfilen hello-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 aktivitetsfilen bash-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 cmdi .

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. Det föregående exemplet kan lika gärna representeras som:

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

Genom att använda standardreferenskonventionen docker run cmd för avbildningar kan du köra avbildningar från alla privata register eller den offentliga Docker Hub. Om du refererar till avbildningar i samma register där ACR-uppgiften 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ätter vi att du har ett register med namnet myregistry, och en anpassad avbildning myimage: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örningsvariabel eller ett alias. Variabeln Run.Registry eller $Registry aliaset expanderas vid körning till namnet på registret där uppgiften 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
    

Få åtkomst till hemliga volymer

Egenskapen volumes tillåter att volymer och deras hemliga innehåll anges för build och cmd steg i en uppgift. 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 .

Property Type Valfritt beskrivning Standardvärde
detach bool Ja Om containern ska kopplas från när den körs. false
disableWorkingDirectoryOverride bool Ja 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, ...] Ja Matris med strängar i key=value format som definierar miljövariablerna för steget. Ingen
expose [sträng, sträng, ...] Ja Matris med portar som exponeras från containern. Ingen
id sträng Ja Identifierar steget i aktiviteten unikt. 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 bool Ja Om steget ska markeras som lyckat oavsett om ett fel uppstod under containerkörningen. false
isolation sträng Ja Containerns isoleringsnivå. default
keep bool Ja Om stegets container ska behållas efter körningen. false
network objekt Ja Identifierar ett nätverk där containern körs. Ingen
ports [sträng, sträng, ...] Ja Matris med portar som publiceras från containern till värden. Ingen
pull bool Ja Om du vill tvinga fram en hämtning av containern innan du kör den för att förhindra cachelagring. false
privileged bool Ja Om containern ska köras i privilegierat läge. false
repeat heltal Ja Antalet återförsök för att upprepa körningen av en container. 0
retries heltal Ja 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) Ja Fördröjningen i sekunder mellan återförsök av en containers körning. 0
secret objekt Ja Identifierar en Azure Key Vault-hemlighet eller hanterad identitet för Azure-resurser. Ingen
startDelay int (sekunder) Ja Antal sekunder för att fördröja körningen av en container. 0
timeout int (sekunder) Ja Maximalt antal sekunder som ett steg kan köras innan det avslutas. 600
when [sträng, sträng, ...] Ja 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.

Property Type Valfritt beskrivning Standardvärde
name sträng Nej 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 av 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 som anger påbörjar when: ["-"] körningen omedelbart och aktiverar samtidiga stegkörningar.
  • when: ["id1", "id2"] – Anger att steget är beroende av steg med id "id1" och id "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ör variabler

ACR Tasks innehåller en standarduppsättning variabler som är tillgängliga för aktivitetssteg 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.0kan 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 runeller utlösarbaserad körning av uppgifter som skapats via az acr task createhar ett unikt ID. ID:t representerar den körning som körs för närvarande.

Används vanligtvis för en unik taggning av 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 uppgiftssteg 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 började.

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

v1.1.0Från och med stöder ACR Tasks alias som är tillgängliga för aktivitetssteg när de körs. Alias liknar alias (kommandogenvägar) som stöds i bash och 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 uppgiftssteg 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 uppgiftsfil 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 i 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 kan 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ärr- 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-uppgifter.

Enstegsversioner finns i översikten över ACR-uppgifter.