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, detachoch 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 buildger 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 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. 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 runcmd 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 myregistryoch 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ör-variabel eller ett alias. Variabeln Run.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 som when: ["-"] anger börjar köras 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ö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.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 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.0med 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.