ACR Görevleri başvurusu: YAML
ACR Görevleri'ndeki çok adımlı görev tanımı, kapsayıcı oluşturmaya, test etmeye ve kapsayıcılara düzeltme eki uygulamaya odaklanan kapsayıcı merkezli bir işlem temel öğesi sağlar. Bu makalede, çok adımlı görevlerinizi tanımlayan YAML dosyalarının komutları, parametreleri, özellikleri ve söz dizimi yer alır.
Bu makale, ACR Görevleri için çok adımlı görev YAML dosyaları oluşturmaya yönelik başvuru içerir. ACR Görevleri'ne giriş yapmak isterseniz bkz. ACR Görevlerine genel bakış.
acr-task.yaml dosya biçimi
ACR Görevleri, standart YAML söz diziminde çok adımlı görev bildirimini destekler. YaML dosyasında bir görevin adımlarını tanımlarsınız. Ardından, dosyayı az acr run komutuna geçirerek görevi el ile çalıştırabilirsiniz . Alternatif olarak dosyayı kullanarak az acr task create ile git işlemesinde, temel görüntü güncelleştirmesinde veya zamanlamada otomatik olarak tetiklenen bir görev oluşturabilirsiniz. Bu makale adımları içeren dosya olarak ifade acr-task.yaml
etmekle birlikte, ACR Görevleri desteklenen bir uzantıya sahip tüm geçerli dosya adlarını destekler.
Üst düzey acr-task.yaml
temel öğeler görev özellikleri, adım türleri ve adım özellikleridir:
- Görev özellikleri , görev yürütme boyunca tüm adımlara uygulanır. Aşağıdakiler de dahil olmak üzere çeşitli genel görev özellikleri vardır:
version
stepTimeout
workingDirectory
- Görev adımı türleri , bir görevde gerçekleştirilebilecek eylem türlerini temsil edebilir. Üç adım türü vardır:
build
push
cmd
- Görev adımı özellikleri , tek bir adıma uygulanan parametrelerdir. Aşağıdakiler de dahil olmak üzere birkaç adım özelliği vardır:
startDelay
timeout
when
- ... ve daha fazlası.
Bazı yaygın adım özellikleri de dahil olmak üzere dosyanın acr-task.yaml
temel biçimi aşağıdadır. Tüm kullanılabilir adım özelliklerinin veya adım türü kullanımının kapsamlı bir gösterimi olmasa da, temel dosya biçimine hızlı bir genel bakış sağlar.
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.
Desteklenen görev dosya adı uzantıları
ACR Görevleri, görev dosyası olarak işleyecekleri, dahil olmak üzere .yaml
birkaç dosya adı uzantısı ayırmıştır. Aşağıdaki listede bulunmayan uzantılar ACR Görevleri tarafından Dockerfile olarak kabul edilir: .yaml, .yml, .toml, .json, .sh, .bash, .zsh, .ps1, .ps, .cmd, .bat, .ts, .js, .php, .py, .rb, .lua
YAML, şu anda ACR Görevleri tarafından desteklenen tek dosya biçimidir. Diğer dosya adı uzantıları gelecekteki olası destek için ayrılmıştır.
Örnek görevleri çalıştırma
Bu makalenin aşağıdaki bölümlerinde başvuruda bulunan birkaç örnek görev dosyası vardır. Örnek görevler, azure-samples/acr-tasks adlı genel bir GitHub deposunda yer alır. Bunları az acr run Azure CLI komutuyla çalıştırabilirsiniz. Örnek komutlar şuna benzer:
az acr run -f build-push-hello-world.yaml https://github.com/Azure-Samples/acr-tasks.git
Örnek komutların biçimlendirmesi, Azure CLI'da varsayılan bir kayıt defteri yapılandırdığınız varsayıldığından parametreyi --registry
atlarlar. Varsayılan kayıt defterini yapılandırmak için az config komutunu kullanarak anahtar değer çiftini set
kabul eden defaults.acr=REGISTRY_NAME
komutunu kullanın.
Örneğin, Azure CLI'yi "myregistry" adlı varsayılan kayıt defteriyle yapılandırmak için:
az config set defaults.acr=myregistry
Görev özellikleri
Görev özellikleri genellikle bir acr-task.yaml
dosyanın en üstünde görünür ve görev adımlarının tam yürütülmesi boyunca geçerli olan genel özelliklerdir. Bu genel özelliklerden bazıları tek bir adımda geçersiz kılınabilir.
Özellik | Tür | İsteğe bağlı | Açıklama | Geçersiz kılma desteği | Default value |
---|---|---|---|---|---|
version |
string | Yes | ACR Görevleri hizmeti tarafından ayrıştırılan dosyanın sürümü acr-task.yaml . ACR Görevleri geriye dönük uyumluluğu korumaya çalışırken, bu değer ACR Görevlerinin tanımlı bir sürüm içinde uyumluluğu korumasına olanak tanır. Belirtilmezse, varsayılan olarak olur v1.0.0 . |
Yok | v1.0.0 |
stepTimeout |
int (saniye) | Yes | Bir adımın çalıştırabileceği en fazla saniye sayısı. stepTimeout Özellik bir görevde belirtilirse, tüm adımların varsayılan timeout özelliğini ayarlar. timeout Özellik bir adımda belirtilirse, görev tarafından sağlanan özelliği geçersiz kılarstepTimeout .Görevin adım zaman aşımı değerlerinin toplamı, görevin çalıştırma timeout özelliğinin değerine eşit olmalıdır (örneğin, komutuna az acr task create geçirilerek --timeout ayarlanır). Görevlerin çalıştırma timeout değeri daha küçükse öncelik alır. |
Yes | 600 (10 dakika) |
workingDirectory |
string | Yes | Çalışma zamanı sırasında kapsayıcının çalışma dizini. Özellik bir görevde belirtilirse, tüm adımların varsayılan workingDirectory özelliğini ayarlar. Bir adımda belirtilirse, görev tarafından sağlanan özelliği geçersiz kılar. |
Yes | c:\workspace Windows veya /workspace Linux'ta |
env |
[dize, dize, ...] | Yes | Görevin ortam değişkenlerini key=value tanımlayan biçimdeki dize dizisi. Özellik bir görevde belirtilirse, tüm adımların varsayılan env özelliğini ayarlar. Bir adımda belirtilirse, görevden devralınan ortam değişkenlerini geçersiz kılar. |
Yes | Hiçbiri |
secrets |
[gizli, gizli, ...] | Yes | Gizli nesne dizisi. | Hayır | None |
networks |
[ağ, ağ, ...] | Yes | Ağ nesneleri dizisi. | Hayır | None |
volumes |
[volume, volume, ...] | Yes | Birim nesneleri dizisi. Bir adıma bağlanacak kaynak içeriği olan birimleri belirtir. | Hayır | None |
gizli dizi
Gizli nesne aşağıdaki özelliklere sahiptir.
Özellik | Tür | İsteğe bağlı | Açıklama | Default value |
---|---|---|---|---|
id |
Dize | Hayır | Gizli dizi tanımlayıcısı. | Hiçbiri |
keyvault |
string | Yes | Azure Key Vault Gizli Dizi URL'si. | Hiçbiri |
clientID |
string | Yes | Azure kaynakları için kullanıcı tarafından atanan yönetilen kimliğin istemci kimliği . | Hiçbiri |
network
Ağ nesnesi aşağıdaki özelliklere sahiptir.
Özellik | Tür | İsteğe bağlı | Açıklama | Default value |
---|---|---|---|---|
name |
Dize | Hayır | Ağın adı. | Hiçbiri |
driver |
string | Yes | Ağı yönetmek için sürücü. | Hiçbiri |
ipv6 |
ikili | Yes | IPv6 ağının etkinleştirilip etkinleştirilmediği. | false |
skipCreation |
ikili | Yes | Ağ oluşturma işleminin atlanıp atlanmayacağı. | false |
isDefault |
ikili | Yes | Ağın Azure Container Registry ile sağlanan varsayılan bir ağ olup olmadığı. | false |
hacim
Birim nesnesi aşağıdaki özelliklere sahiptir.
Özellik | Tür | İsteğe bağlı | Açıklama | Default value |
---|---|---|---|---|
name |
Dize | Hayır | Bağlanacak birimin adı. Yalnızca '-' ve '_' alfasayısal karakterler içerebilir. | Hiçbiri |
secret |
map[string]string | Hayır | Eşlemenin her anahtarı, birimde oluşturulan ve doldurulan bir dosyanın adıdır. Her değer, gizli dizinin dize sürümüdür. Gizli dizi değerleri Base64 kodlanmış olmalıdır. | Hiçbiri |
Görev adımı türleri
ACR Görevleri üç adım türünü destekler. Her adım türü, her adım türü için bölümünde ayrıntılı olarak belirtilen çeşitli özellikleri destekler.
Adım türü | Açıklama |
---|---|
build |
Tanıdık docker build söz dizimlerini kullanarak bir kapsayıcı görüntüsü oluşturur. |
push |
docker push Kapsayıcı kayıt defterinde yeni oluşturulan veya yeniden etiketlenen görüntüleri yürütür. Azure Container Registry, diğer özel kayıt defterleri ve genel Docker Hub desteklenir. |
cmd |
Bir kapsayıcıyı komutu olarak çalıştırır ve parametreleri kapsayıcının [ENTRYPOINT] öğesine geçirilir. Adım cmd türü, , detach ve diğer tanıdık docker run komut seçenekleri gibi env parametreleri destekler ve eşzamanlı kapsayıcı yürütme ile birim ve işlevsel testi etkinleştirir. |
derleme
Kapsayıcı görüntüsü oluşturma. Adım build
türü, bulutta birinci sınıf bir temel öğe olarak çalıştırmanın docker build
çok kiracılı, güvenli bir araçlarını temsil eder.
Söz dizimi: derleme
version: v1.1.0
steps:
- [build]: -t [imageName]:[tag] -f [Dockerfile] [context]
[property]: [value]
Docker sürümünü almak için az acr runkomutunu çalıştırın.
az acr run -r $ACR_NAME --cmd "docker version" /dev/null
ile buildkit
etkinleştirmek buildkit
ve kullanmak secret
için yaml dosyasına ortam değişkeni DOCKER_BUILDKIT=1
ekleyin.
Adım build
türü aşağıdaki tabloda yer alan parametreleri destekler. Adım build
türü, derleme zamanı değişkenlerini ayarlamak gibi --build-arg
docker build komutunun tüm derleme seçeneklerini de destekler.
Parametre | Açıklama | İsteğe bağlı |
---|---|---|
-t | --image |
Yerleşik görüntünün tam nitelemini image:tag tanımlar.İşlevsel testler gibi iç görev doğrulamaları için resimler kullanılabildiğinden, tüm görüntülerin kayıt defterine ihtiyacı push olmaz. Ancak, bir Görev yürütmesi içindeki bir görüntüyü örnek olarak görüntülemek için, görüntünün başvurulacak bir ada ihtiyacı vardır.'nin aksine az acr build , ACR Görevlerini çalıştırmak varsayılan gönderme davranışını sağlamaz. ACR Görevleri ile varsayılan senaryoda görüntü oluşturma, doğrulama ve gönderme özelliği varsayılır. İsteğe bağlı olarak oluşturulan görüntüleri gönderme hakkında bilgi için bkz. gönderme. |
Yes |
-f | --file |
öğesine geçirilen docker build Dockerfile dosyasını belirtir. Belirtilmezse, bağlamın kökündeki varsayılan Dockerfile varsayılır. Dockerfile belirtmek için dosya adını bağlamın köküne göre geçirin. |
Yes |
context |
Kök dizin öğesine docker build geçirildi. Her görevin kök dizini paylaşılan bir workingDirectory olarak ayarlanır ve ilişkili Git kopyalanmış dizininin kökünü içerir. |
Hayır |
Özellikler: derleme
Adım build
türü aşağıdaki özellikleri destekler. Bu özelliklerin ayrıntılarını bu makalenin Görev adımı özellikleri bölümünde bulabilirsiniz.
Properties | Type | Zorunlu |
---|---|---|
detach |
bool | İsteğe bağlı |
disableWorkingDirectoryOverride |
bool | İsteğe bağlı |
entryPoint |
Dize | İsteğe bağlı |
env |
[dize, dize, ...] | İsteğe bağlı |
expose |
[dize, dize, ...] | İsteğe bağlı |
id |
Dize | İsteğe bağlı |
ignoreErrors |
bool | İsteğe bağlı |
isolation |
Dize | İsteğe bağlı |
keep |
bool | İsteğe bağlı |
network |
nesne | İsteğe bağlı |
ports |
[dize, dize, ...] | İsteğe bağlı |
pull |
bool | İsteğe bağlı |
repeat |
int | İsteğe bağlı |
retries |
int | İsteğe bağlı |
retryDelay |
int (saniye) | İsteğe bağlı |
secret |
nesne | İsteğe bağlı |
startDelay |
int (saniye) | İsteğe bağlı |
timeout |
int (saniye) | İsteğe bağlı |
volumeMount |
nesne | İsteğe bağlı |
when |
[dize, dize, ...] | İsteğe bağlı |
workingDirectory |
Dize | İsteğe bağlı |
Örnekler: derleme
Derleme görüntüsü - kökte bağlam
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 .
Derleme görüntüsü - alt dizindeki bağlam
version: v1.1.0
steps:
- build: -t $Registry/hello-world -f hello-world.dockerfile ./subDirectory
ACR Görevlerinde dinamik değişken geçirme
Azure kapsayıcı kayıt defteri (ACR) görevleriyle çalışırken, komutuyla az acr task run
bayrağını kullanarak --set
görev tanımını değiştirmeden derleme işleminize farklı değerler geçirmeniz gerektiğini fark edebilirsiniz.
Örnek: Çalışma zamanında görüntü etiketini ayarlama
Görüntü etiketi için yer tutucusu olan bir acr-task.yml
dosyada tanımlanmış bir ACR göreviniz olduğunu varsayalım:
steps:
- build: -t $Registry/hello-world:{{.Values.tag}}
Aşağıdaki Azure CLI komutunu kullanarak görevi tetikleyebilir ve değişkeni v2
çalışma zamanında olarak ayarlayabilirsiniztag
:
az acr task run --registry myregistry --name mytask --set tag=v2
Bu komut adlı mytask
ACR görevini başlatır ve etiketi kullanarak v2
görüntüyü oluşturur ve dosyadaki acr-task.yml
yer tutucuyu geçersiz kılır.
Bu yaklaşım CI/CD işlem hatlarınızda özelleştirmeye olanak sağlayarak, görev tanımlarını değiştirmeden parametreleri geçerli gereksinimlerinize göre dinamik olarak ayarlamanıza olanak tanır.
push
Kapsayıcı kayıt defterine bir veya daha fazla yerleşik veya yeniden etiketlenmiş görüntü gönderin. Azure Container Registry gibi özel kayıt defterlerine veya genel Docker Hub'a göndermeyi destekler.
Söz dizimi: gönderme
Adım push
türü bir görüntü koleksiyonunu destekler. YAML koleksiyonu söz dizimi satır içi ve iç içe biçimleri destekler. Tek bir görüntü gönderme genellikle satır içi söz dizimi kullanılarak temsil edilir:
version: v1.1.0
steps:
# Inline YAML collection syntax
- push: ["$Registry/hello-world:$ID"]
Daha fazla okunabilirlik için, birden çok görüntü gönderdiğinizde iç içe sözdizimini kullanın:
version: v1.1.0
steps:
# Nested YAML collection syntax
- push:
- $Registry/hello-world:$ID
- $Registry/hello-world:latest
Özellikler: gönderme
Adım push
türü aşağıdaki özellikleri destekler. Bu özelliklerin ayrıntılarını bu makalenin Görev adımı özellikleri bölümünde bulabilirsiniz.
Özellik | Type | Zorunlu |
---|---|---|
env |
[dize, dize, ...] | İsteğe bağlı |
id |
Dize | İsteğe bağlı |
ignoreErrors |
bool | İsteğe bağlı |
startDelay |
int (saniye) | İsteğe bağlı |
timeout |
int (saniye) | İsteğe bağlı |
when |
[dize, dize, ...] | İsteğe bağlı |
Örnekler: gönderme
Birden çok görüntü gönderme
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
Derleme, gönderme ve çalıştırma
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
Adım cmd
türü bir kapsayıcı çalıştırır.
Sözdizimi: cmd
version: v1.1.0
steps:
- [cmd]: [containerImage]:[tag (optional)] [cmdParameters to the image]
Özellikler: cmd
Adım cmd
türü aşağıdaki özellikleri destekler:
Özellik | Type | Zorunlu |
---|---|---|
detach |
bool | İsteğe bağlı |
disableWorkingDirectoryOverride |
bool | İsteğe bağlı |
entryPoint |
Dize | İsteğe bağlı |
env |
[dize, dize, ...] | İsteğe bağlı |
expose |
[dize, dize, ...] | İsteğe bağlı |
id |
Dize | İsteğe bağlı |
ignoreErrors |
bool | İsteğe bağlı |
isolation |
Dize | İsteğe bağlı |
keep |
bool | İsteğe bağlı |
network |
nesne | İsteğe bağlı |
ports |
[dize, dize, ...] | İsteğe bağlı |
pull |
bool | İsteğe bağlı |
repeat |
int | İsteğe bağlı |
retries |
int | İsteğe bağlı |
retryDelay |
int (saniye) | İsteğe bağlı |
secret |
nesne | İsteğe bağlı |
startDelay |
int (saniye) | İsteğe bağlı |
timeout |
int (saniye) | İsteğe bağlı |
volumeMount |
nesne | İsteğe bağlı |
when |
[dize, dize, ...] | İsteğe bağlı |
workingDirectory |
Dize | İsteğe bağlı |
Bu özelliklerin ayrıntılarını bu makalenin Görev adımı özellikleri bölümünde bulabilirsiniz.
Örnekler: cmd
Hello-world görüntüsünü çalıştırma
Bu komut, Docker Hub'daki hello-world.yaml
hello-world görüntüsüne başvuran görev dosyasını yürütür.
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 görüntüsünü çalıştırın ve "merhaba dünya" ifadesini yankıla
Bu komut, Docker Hub'daki bash-echo.yaml
bash görüntüsüne başvuran görev dosyasını yürütür.
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
Belirli bash görüntü etiketini çalıştırma
Belirli bir görüntü sürümünü çalıştırmak için içinde cmd
etiketini belirtin.
Bu komut, Docker Hub'daki bash-echo-3.yaml
bash:3.0 görüntüsüne başvuran görev dosyasını yürütür.
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
Özel görüntüleri çalıştırma
Adım cmd
türü, standart docker run
biçimi kullanarak görüntülere başvurur. Kayıt defteriyle önceden oluşturulmuş olmayan görüntülerin docker.io kaynaklandığı varsayılır. Önceki örnek eşit olarak şu şekilde gösterilebilir:
version: v1.1.0
steps:
- cmd: docker.io/bash:3.0 echo hello world
Standart docker run
görüntü başvuru kuralını kullanarak herhangi cmd
bir özel kayıt defterinden veya genel Docker Hub'dan görüntü çalıştırabilirsiniz. ACR Görevinin yürütülmekte olduğu kayıt defterindeki görüntülere başvuruyorsanız, herhangi bir kayıt defteri kimlik bilgisi belirtmeniz gerekmez.
Azure kapsayıcı kayıt defterinden bir görüntü çalıştırın. Aşağıdaki örnekte adlı
myregistry
bir kayıt defteriniz ve özel bir görüntünizmyimage:mytag
olduğu varsayılır.version: v1.1.0 steps: - cmd: myregistry.azurecr.io/myimage:mytag
Kayıt defteri başvurusunu Run değişkeni veya diğer adıyla genelleştirme
Kayıt defteri adınızı bir
acr-task.yaml
dosyada sabit kodlamak yerine, Bir Çalıştırma değişkeni veya diğer ad kullanarak daha taşınabilir hale getirebilirsiniz. DeğişkenRun.Registry
veya$Registry
diğer ad çalışma zamanında görevin yürütülmekte olduğu kayıt defterinin adına genişletilir.Örneğin, önceki görevi herhangi bir Azure kapsayıcı kayıt defterinde çalışacak şekilde genelleştirmek için görüntü adındaki $Registry değişkenine başvurun:
version: v1.1.0 steps: - cmd: $Registry/myimage:mytag
Gizli dizi birimlerine erişme
özelliği, volumes
birimlerin ve gizli dizi içeriklerinin bir görevde ve cmd
adımları için build
belirtilmesine izin verir. Her adımın içinde isteğe bağlı volumeMounts
bir özellik, bu adımda kapsayıcıya bağlanacak birimleri ve ilgili kapsayıcı yollarını listeler. Gizli diziler, her birimin bağlama yolunda dosya olarak sağlanır.
Bir görevi yürütür ve iki gizli diziyi bir adıma bağlar: biri anahtar kasasında depolanır ve biri komut satırında belirtilir:
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
Görev adımı özellikleri
Her adım türü, türüne uygun çeşitli özellikleri destekler. Aşağıdaki tablo tüm kullanılabilir adım özelliklerini tanımlar. Tüm adım türleri tüm özellikleri desteklemez. Her adım türü için bu özelliklerden hangilerinin kullanılabilir olduğunu görmek için cmd, build ve push step type başvuru bölümlerine bakın.
Özellik | Tür | İsteğe bağlı | Açıklama | Default value |
---|---|---|---|---|
detach |
ikili | Yes | Çalıştırılırken kapsayıcının ayrılması gerekip gerekmediği. | false |
disableWorkingDirectoryOverride |
ikili | Yes | Geçersiz kılma işlevinin devre dışı bırakılıp devre dışı bırakılmayacağı workingDirectory . Kapsayıcının çalışma dizini üzerinde tam denetim sahibi olmak için bunu ile workingDirectory birlikte kullanın. |
false |
entryPoint |
string | Yes | Bir adımın [ENTRYPOINT] kapsayıcısını geçersiz kılar. |
Hiçbiri |
env |
[dize, dize, ...] | Yes | Adım için ortam değişkenlerini key=value tanımlayan biçimdeki dize dizisi. |
Hiçbiri |
expose |
[dize, dize, ...] | Yes | Kapsayıcıdan kullanıma sunulan bağlantı noktaları dizisi. | Hiçbiri |
id |
string | Yes | Görev içindeki adımı benzersiz olarak tanımlar. Görevdeki diğer adımlar, ile when bağımlılık denetimi gibi bir adıma id başvurabilir.id aynı zamanda çalışan kapsayıcının adıdır. Görevdeki diğer kapsayıcılarda çalıştırılan işlemler, örneğin DNS ana bilgisayar adı olarak veya [id] docker günlükleriyle buna erişmek için öğesine başvurabilir id . |
acb_step_%d , burada %d YAML dosyasındaki yukarıdan aşağı adımın 0 tabanlı dizinidir |
ignoreErrors |
ikili | Yes | Kapsayıcı yürütme sırasında bir hata oluşup oluşmadığına bakılmaksızın adımın başarılı olarak işaretlenip işaretlenmeyeceği. | false |
isolation |
string | Yes | Kapsayıcının yalıtım düzeyi. | default |
keep |
ikili | Yes | Adım kapsayıcısının yürütmeden sonra saklanması gerekip gerekmediği. | false |
network |
nesne | Yes | Kapsayıcının çalıştığı bir ağı tanımlar. | Hiçbiri |
ports |
[dize, dize, ...] | Yes | Kapsayıcıdan konağa yayımlanan bağlantı noktaları dizisi. | Hiçbiri |
pull |
ikili | Yes | Herhangi bir önbelleğe alma davranışını önlemek için kapsayıcıyı yürütmeden önce çekmenin zorlanıp zorlanmayacağı. | false |
privileged |
ikili | Yes | Kapsayıcının ayrıcalıklı modda çalıştırılıp çalıştırılmayacağı. | false |
repeat |
int | Yes | Bir kapsayıcının yürütülmesini yinelemek için yeniden deneme sayısı. | 0 |
retries |
int | Yes | Bir kapsayıcının yürütülememesi durumunda denenecek yeniden deneme sayısı. Yeniden deneme yalnızca kapsayıcının çıkış kodu sıfır değilse denenmiştir. | 0 |
retryDelay |
int (saniye) | Yes | Bir kapsayıcının yürütülmesinin yeniden denenmesi arasındaki saniye cinsinden gecikme. | 0 |
secret |
nesne | Yes | Azure kaynakları için bir Azure Key Vault gizli anahtarı veya yönetilen kimliği tanımlar. | Hiçbiri |
startDelay |
int (saniye) | Yes | Kapsayıcının yürütülmesini geciktirmek için saniye sayısı. | 0 |
timeout |
int (saniye) | Yes | Bir adımın sonlandırılmadan önce yürütülebileceği en fazla saniye sayısı. | 600 |
when |
[dize, dize, ...] | Yes | Bir adımın görev içindeki bir veya daha fazla adıma bağımlılığını yapılandırılır. | Hiçbiri |
user |
string | Yes | Kapsayıcının kullanıcı adı veya UID'si | Hiçbiri |
workingDirectory |
string | Yes | Bir adım için çalışma dizinini ayarlar. Varsayılan olarak, ACR Görevleri çalışma dizini olarak bir kök dizin oluşturur. Ancak, derlemenizde birkaç adım varsa, önceki adımlar aynı çalışma dizinini belirterek yapıtları sonraki adımlarla paylaşabilir. | c:\workspace Windows veya /workspace Linux'ta |
volumeMount
volumeMount nesnesi aşağıdaki özelliklere sahiptir.
Özellik | Tür | İsteğe bağlı | Açıklama | Default value |
---|---|---|---|---|
name |
Dize | Hayır | Bağlanacak birimin adı. Bir özelliğin adıyla volumes tam olarak eşleşmelidir. |
Hiçbiri |
mountPath |
Dize | hayır | Kapsayıcıya dosya bağlamanın mutlak yolu. | Hiçbiri |
Örnekler: Görev adımı özellikleri
Örnek: kimlik
İşlevsel bir test görüntüsü oluşturarak iki görüntü oluşturun. Her adım, kendi özelliğinde görev başvurusundaki when
diğer adımların benzersiz id
bir tarafından tanımlanır.
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"]
Örnek: ne zaman
when
özelliği, bir adımın görev içindeki diğer adımlara bağımlılığını belirtir. İki parametre değerini destekler:
when: ["-"]
- Diğer adımlara bağımlılık olmadığını gösterir. Belirtenwhen: ["-"]
bir adım hemen yürütülmeye başlar ve eşzamanlı adım yürütmeyi etkinleştirir.when: ["id1", "id2"]
- Adımın "id1" veid
"id2" içerenid
adımlara bağlı olduğunu gösterir. Bu adım hem "id1" hem de "id2" adımları tamamlanana kadar yürütülmeyecek.
Bir adımda belirtilmezse when
, bu adım dosyadaki önceki adımın tamamlanmasına acr-task.yaml
bağlıdır.
olmadan when
sıralı adım yürütme:
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
ile when
sıralı adım yürütme:
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"]
Paralel görüntüler derlemesi:
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: ["-"]
Paralel görüntü derlemesi ve bağımlı test:
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"]
Değişkenleri çalıştırma
ACR Görevleri, yürütürken görev adımları için kullanılabilen varsayılan bir değişken kümesi içerir. Bu değişkenlere biçimi {{.Run.VariableName}}
kullanılarak erişilebilir. Burada VariableName
aşağıdakilerden biridir:
Run.ID
Run.SharedVolume
Run.Registry
Run.RegistryName
Run.Date
Run.OS
Run.Architecture
Run.Commit
Run.Branch
Run.TaskName
Değişken adları genellikle kendi kendine açıklayıcıdır. Ayrıntılar, yaygın olarak kullanılan değişkenler için kullanılır. YAML sürümünden v1.1.0
itibaren, çoğu çalıştırma değişkeninin yerine kısaltılmış, önceden tanımlanmış bir görev diğer adı kullanabilirsiniz. Örneğin, yerine {{.Run.Registry}}
diğer adı kullanın $Registry
.
Run.ID
aracılığıyla az acr task create
oluşturulan görevlerin her Çalıştırma, aracılığıyla az acr run
veya tetikleyici tabanlı yürütmesinin benzersiz bir kimliği vardır. Kimlik, şu anda yürütülmekte olan Çalıştır'ı temsil eder.
Genellikle bir görüntüyü benzersiz olarak etiketlemek için kullanılır:
version: v1.1.0
steps:
- build: -t $Registry/hello-world:$ID .
Run.SharedVolume
Tüm görev adımlarının erişebildiği paylaşılan birimin benzersiz tanımlayıcısı. Birim, Windows veya /workspace
Linux'a bağlanırc:\workspace
.
Run.Registry
Kayıt defterinin tam sunucu adı. Genellikle görevin çalıştırıldığı kayıt defterine genel olarak başvurmak için kullanılır.
version: v1.1.0
steps:
- build: -t $Registry/hello-world:$ID .
Run.RegistryName
Kapsayıcı kayıt defterinin adı. Genellikle tam sunucu adı gerektirmeyen görev adımlarında kullanılır. Örneğin, cmd
kayıt defterlerinde Azure CLI komutlarını çalıştıran adımlar.
version 1.1.0
steps:
# List repositories in registry
- cmd: az login --identity
- cmd: az acr repository list --name $RegistryName
Çalıştır.Tarih
Çalıştırmanın başladığı geçerli UTC saati.
Run.Commit
GitHub deposuna yönelik bir işleme tarafından tetiklenen bir görev için işleme tanımlayıcısı.
Run.Branch
GitHub deposuna yönelik bir işleme tarafından tetiklenen bir görev için dal adı.
Diğer adlar
v1.1.0
itibarıyla, ACR Görevleri yürütülürken görev adımlarının kullanabilecekleri diğer adları destekler. Diğer adlar kavram olarak bash ve diğer bazı komut kabuklarında desteklenen diğer adlara (komut kısayolları) benzerdir.
Diğer adla, tek bir sözcük girerek herhangi bir komutu veya komut grubunu (seçenekler ve dosya adları dahil) başlatabilirsiniz.
ACR Görevleri, önceden tanımlanmış birkaç diğer adı ve oluşturduğunuz özel diğer adları destekler.
Önceden tanımlanmış diğer adlar
Aşağıdaki görev diğer adları, çalıştırma değişkenleri yerine kullanılabilir:
Diğer ad | Değişken çalıştırma |
---|---|
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 |
Görev adımlarında, aşağıdaki örnekte olduğu gibi yönergesiyle bir diğer adın $
önüne geçin:
version: v1.1.0
steps:
- build: -t $Registry/hello-world:$ID -f hello-world.dockerfile .
Görüntü diğer adları
Aşağıdaki diğer adların her biri Microsoft Container Registry'de (MCR) kararlı bir görüntüye işaret eder. Bir yönerge kullanmadan bir Görev dosyasının cmd
bölümünde bunların her birine başvurabilirsiniz.
Diğer ad | Görsel |
---|---|
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 |
Aşağıdaki örnek görev, çalıştırma kayıt defterindeki depoda samples/hello-world
7 günden eski görüntü etiketlerini temizlemek için birkaç diğer ad kullanır:
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
Özel diğer ad
YAML dosyanızda özel bir diğer ad tanımlayın ve aşağıdaki örnekte gösterildiği gibi kullanın. Diğer ad yalnızca alfasayısal karakterler içerebilir. Diğer adı genişletmek için varsayılan yönerge karakterdir $
.
version: v1.1.0
alias:
values:
repo: myrepo
steps:
- build: -t $Registry/$repo/hello-world:$ID -f Dockerfile .
Özel diğer ad tanımları için uzak veya yerel bir YAML dosyasına bağlanabilirsiniz. Aşağıdaki örnek, Azure blob depolamadaki bir YAML dosyasına bağlantı sağlar:
version: v1.1.0
alias:
src: # link to local or remote custom alias files
- 'https://link/to/blob/remoteAliases.yml?readSasToken'
[...]
Sonraki adımlar
Çok adımlı görevlere genel bakış için bkz. ACR Görevleri'nde çok adımlı derleme, test ve düzeltme eki görevleri çalıştırma.
Tek adımlı derlemeler için bkz. ACR Görevlerine genel bakış.