Tutorial: Menjalankan alur kerja kontainer multi-langkah di cloud saat Anda menerapkan kode sumber
Selain tugas cepat, ACR Tasks mendukung alur kerja multi-langkah berbasis multi-kontainer yang dapat memicu secara otomatis saat Anda menerapkan kode sumber ke repositori Git.
Dalam tutorial ini, Anda mempelajari cara menggunakan contoh file YAML untuk menentukan tugas multi-langkah yang menyusun, menjalankan, dan mendorong satu atau beberapa gambar kontainer ke registri ketika Anda menerapkan kode sumber. Untuk membuat tugas yang hanya mengotomatiskan satu build gambar pada penerapan kode, lihat Tutorial: Mengotomatiskan build gambar kontainer di cloud saat Anda menerapkan kode sumber. Untuk gambaran umum ACR Tasks, lihat Mengotomatiskan OS dan penambalan kerangka kerja dengan ACR Tasks,
Dalam tutorial ini:
- Menentukan tugas multi-langkah menggunakan file YAML
- Buat tugas
- Secara opsional menambahkan kredensial ke tugas untuk mengaktifkan akses ke registri lain
- Uji tugas
- Tampilkan status tugas
- Picu tugas dengan penerapan kode
Tutorial ini mengasumsikan Anda telah menyelesaikan langkah-langkah dalam tutorial sebelumnya. Jika Anda belum melakukannya, selesaikan langkah-langkah di bagian Prasyarat dari tutorial sebelumnya sebelum melanjutkan.
Prasyarat
Dapatkan sampel kode
Tutorial ini mengasumsikan Anda telah menyelesaikan langkah-langkah dalam tutorial sebelumnya dan telah melakukan fork dan klon contoh repositori. Jika Anda belum melakukannya, selesaikan langkah-langkah di bagian Prasyarat dari tutorial sebelumnya sebelum melanjutkan.
Registri kontainer
Anda harus memiliki registri kontainer Azure di langganan Azure Anda untuk menyelesaikan tutorial ini. Jika Anda memerlukan registri, lihat tutorial sebelumnya, atau Mulai Cepat: Membuat registri kontainer menggunakan Azure CLI.
Membuat token akses pribadi GitHub
Untuk memicu tugas pada penerapan ke repositori Git, Tugas ACR memerlukan token akses pribadi (PAT) untuk mengakses repositori. Jika Anda belum memiliki PAT, ikuti langkah-langkah berikut untuk membuatnya di GitHub:
Buka halaman pembuatan PAT di GitHub di https://github.com/settings/tokens/new
Masukkan deskripsi singkat untuk token, misalnya, "Demo Tugas ACR"
Pilih cakupan ACR untuk mengakses repositori. Untuk mengakses repositori publik seperti dalam tutorial ini, di bagian repositori, aktifkan repo:status dan public_repo
Catatan
Untuk membuat PAT untuk mengakses repositori privat, pilih cakupan untuk kontrol repositori penuh.
Pilih tombol Buat token (Anda mungkin diminta untuk mengonfirmasi kata sandi)
Salin dan simpan token yang dihasilkan di lokasi yang aman (Anda menggunakan token ini saat menentukan tugas di bagian berikut)
Persiapkan lingkungan Anda untuk Azure CLI
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
Membuat tugas multi-langkah
Sekarang setelah Anda menyelesaikan langkah-langkah yang diperlukan untuk mengaktifkan ACR Tasks untuk membaca status penerapan dan membuat webhook di repositori, membuat tugas multi-langkah yang memicu pembangunan, menjalankan, dan mendorong gambar kontainer.
File YAML
Anda menentukan langkah-langkah untuk tugas multi-langkah dalam file YAML. Contoh pertama tugas multi-langkah untuk tutorial ini didefinisikan dalam file taskmulti.yaml
, yang berada di akar repo GitHub yang Anda kloning:
version: v1.1.0
steps:
# Build target image
- build: -t {{.Run.Registry}}/hello-world:{{.Run.ID}} -f Dockerfile .
# Run image
- cmd: -t {{.Run.Registry}}/hello-world:{{.Run.ID}}
id: test
detach: true
ports: ["8080:80"]
- cmd: docker stop test
# Push image
- push:
- {{.Run.Registry}}/hello-world:{{.Run.ID}}
Tugas multi-langkah ini melakukan hal berikut:
- Menjalankan langkah
build
untuk menyusun gambar dari Dockerfile di direktori kerja. Gambar menargetkanRun.Registry
, registri tempat tugas dijalankan, dan ditandai dengan ID eksekusi ACR Tasks yang unik. - Menjalankan
cmd
langkah untuk menjalankan gambar dalam kontainer sementara. Contoh ini memulai kontainer yang sudah berjalan lama di latar belakang dan mengembalikan ID kontainer, lalu menghentikan kontainer. Dalam skenario dunia nyata, Anda mungkin menyertakan langkah-langkah untuk menguji kontainer yang sedang berjalan untuk memastikannya berjalan dengan benar. - Dalam langkah
push
, mendorong gambar yang disusun untuk menjalankan registri.
Perintah tugas
Pertama, isi variabel lingkungan shell ini dengan nilai yang sesuai untuk lingkungan Anda. Langkah ini tidak benar-benar diperlukan, tetapi membuat menjalankan perintah CLI Azure multibaris dalam tutorial ini sedikit lebih mudah. Jika tidak mengisi variabel lingkungan ini, Anda harus mengganti setiap nilai secara manual di mana pun variabel tersebut muncul dalam perintah contoh.
ACR_NAME=<registry-name> # The name of your Azure container registry
GIT_USER=<github-username> # Your GitHub user account name
GIT_PAT=<personal-access-token> # The PAT you generated in the previous section
Sekarang, buat tugas dengan menjalankan perintah pembuatan tugas az acr berikut:
az acr task create \
--registry $ACR_NAME \
--name example1 \
--context https://github.com/$GIT_USER/acr-build-helloworld-node.git#main \
--file taskmulti.yaml \
--git-access-token $GIT_PAT
Tugas ini menentukan bahwa setiap kali kode berkomitmen pada cabang utama dalam repositori yang ditentukan oleh --context
, ACR Tasks akan menjalankan tugas multi-langkah dari kode di cabang tersebut. File YAML yang ditentukan oleh --file
dari akar repositori mendefinisikan langkah-langkah.
Output dari perintah pembuatan tugas az acr yang berhasil serupa dengan yang berikut ini:
{
"agentConfiguration": {
"cpu": 2
},
"creationDate": "2020-11-20T03:14:31.763887+00:00",
"credentials": null,
"id": "/subscriptions/<Subscription ID>/resourceGroups/myregistry/providers/Microsoft.ContainerRegistry/registries/myregistry/tasks/taskmulti",
"location": "westus",
"name": "example1",
"platform": {
"architecture": "amd64",
"os": "linux",
"variant": null
},
"provisioningState": "Succeeded",
"resourceGroup": "myresourcegroup",
"status": "Enabled",
"step": {
"baseImageDependencies": null,
"contextAccessToken": null,
"contextPath": "https://github.com/gituser/acr-build-helloworld-node.git#main",
"taskFilePath": "taskmulti.yaml",
"type": "FileTask",
"values": [],
"valuesFilePath": null
},
"tags": null,
"timeout": 3600,
"trigger": {
"baseImageTrigger": {
"baseImageTriggerType": "Runtime",
"name": "defaultBaseimageTriggerName",
"status": "Enabled"
},
"sourceTriggers": [
{
"name": "defaultSourceTriggerName",
"sourceRepository": {
"branch": "main",
"repositoryUrl": "https://github.com/gituser/acr-build-helloworld-node.git#main",
"sourceControlAuthProperties": null,
"sourceControlType": "Github"
},
"sourceTriggerEvents": [
"commit"
],
"status": "Enabled"
}
]
},
"type": "Microsoft.ContainerRegistry/registries/tasks"
}
Menguji alur kerja multi-langkah
Untuk menguji tugas multi-langkah, picu secara manual dengan menjalankan perintah az acr task run:
az acr task run --registry $ACR_NAME --name example1
Secara default, perintah az acr task run
mengalirkan output log ke konsol Anda saat Anda menjalankan perintah. Output menunjukkan kemajuan menjalankan setiap langkah tugas. Output dikondensasikan untuk menunjukkan langkah-langkah kunci.
Queued a run with ID: cab
Waiting for an agent...
2020/11/20 00:03:31 Downloading source code...
2020/11/20 00:03:33 Finished downloading source code
2020/11/20 00:03:33 Using acb_vol_cfe6bd55-3076-4215-8091-6a81aec3d1b1 as the home volume
2020/11/20 00:03:33 Creating Docker network: acb_default_network, driver: 'bridge'
2020/11/20 00:03:34 Successfully set up Docker network: acb_default_network
2020/11/20 00:03:34 Setting up Docker configuration...
2020/11/20 00:03:34 Successfully set up Docker configuration
2020/11/20 00:03:34 Logging in to registry: myregistry.azurecr.io
2020/11/20 00:03:35 Successfully logged into myregistry.azurecr.io
2020/11/20 00:03:35 Executing step ID: acb_step_0. Working directory: '', Network: 'acb_default_network'
2020/11/20 00:03:35 Scanning for dependencies...
2020/11/20 00:03:36 Successfully scanned dependencies
2020/11/20 00:03:36 Launching container with name: acb_step_0
Sending build context to Docker daemon 24.06kB
[...]
Successfully built f669bfd170af
Successfully tagged myregistry.azurecr.io/hello-world:cf19
2020/11/20 00:03:43 Successfully executed container: acb_step_0
2020/11/20 00:03:43 Executing step ID: acb_step_1. Working directory: '', Network: 'acb_default_network'
2020/11/20 00:03:43 Launching container with name: acb_step_1
279b1cb6e092b64c8517c5506fcb45494cd5a0bd10a6beca3ba97f25c5d940cd
2020/11/20 00:03:44 Successfully executed container: acb_step_1
2020/11/20 00:03:44 Executing step ID: acb_step_2. Working directory: '', Network: 'acb_default_network'
2020/11/20 00:03:44 Pushing image: myregistry.azurecr.io/hello-world:cf19, attempt 1
[...]
2020/11/20 00:03:46 Successfully pushed image: myregistry.azurecr.io/hello-world:cf19
2020/11/20 00:03:46 Step ID: acb_step_0 marked as successful (elapsed time in seconds: 7.425169)
2020/11/20 00:03:46 Populating digests for step ID: acb_step_0...
2020/11/20 00:03:47 Successfully populated digests for step ID: acb_step_0
2020/11/20 00:03:47 Step ID: acb_step_1 marked as successful (elapsed time in seconds: 0.827129)
2020/11/20 00:03:47 Step ID: acb_step_2 marked as successful (elapsed time in seconds: 2.112113)
2020/11/20 00:03:47 The following dependencies were found:
2020/11/20 00:03:47
- image:
registry: myregistry.azurecr.io
repository: hello-world
tag: cf19
digest: sha256:6b981a8ca8596e840228c974c929db05c0727d8630465de536be74104693467a
runtime-dependency:
registry: registry.hub.docker.com
repository: library/node
tag: 15-alpine
digest: sha256:8dafc0968fb4d62834d9b826d85a8feecc69bd72cd51723c62c7db67c6dec6fa
git:
git-head-revision: 1a3065388a0238e52865db1c8f3e97492a43444c
Run ID: cab was successful after 18s
Memicu build dengan penerapan
Sekarang setelah Anda menguji tugas dengan menjalankannya secara manual, picu secara otomatis dengan perubahan kode sumber.
Pertama, pastikan Anda berada di direktori yang berisi klon lokal repositori:
cd acr-build-helloworld-node
Selanjutnya, jalankan perintah berikut untuk membuat, menerapkan, dan mendorong file baru ke fork repo Anda di GitHub:
echo "Hello World!" > hello.txt
git add hello.txt
git commit -m "Testing ACR Tasks"
git push origin main
Anda dapat diminta untuk memberikan kredensial GitHub Anda saat menjalankan perintah git push
. Berikan nama pengguna GitHub Anda, dan masukkan token akses pribadi (PAT) yang Anda buat sebelumnya untuk kata sandi.
Username for 'https://github.com': <github-username>
Password for 'https://githubuser@github.com': <personal-access-token>
Setelah Anda mendorong komit ke repositori Anda, webhook yang dibuat oleh ACR Tasks menembak dan memulai tugas di Azure Container Registry. Tampilkan log untuk tugas yang sedang berjalan untuk memverifikasi dan memantau kemajuan build:
az acr task logs --registry $ACR_NAME
Output mirip dengan yang berikut ini, memperlihatkan tugas yang saat ini dijalankan (atau yang terakhir dijalankan):
Showing logs of the last created run.
Run ID: cad
[...]
Run ID: cad was successful after 37s
Mencantumkan build
Untuk melihat daftar tugas yang dijalankan agar ACR Tasks telah selesai untuk registri Anda, jalankan perintah az acr task list-runs:
az acr task list-runs --registry $ACR_NAME --output table
Output dari perintah akan tampak serupa dengan yang berikut ini. Pengoperasian yang dijalankan ACR Tasks ditampilkan, dan "Git Commit" muncul di kolom TRIGGER untuk tugas terbaru:
RUN ID TASK PLATFORM STATUS TRIGGER STARTED DURATION
-------- -------------- ---------- --------- --------- -------------------- ----------
cad example1 linux Succeeded Commit 2020-11-20T00:22:15Z 00:00:35
cac taskhelloworld linux Succeeded Commit 2020-11-20T00:22:15Z 00:00:22
cab example1 linux Succeeded Manual 2020-11-20T00:18:36Z 00:00:47
Membuat tugas multi-langkah multi-registri
ACR Tasks dsecara default memiliki izin untuk mendorong atau menarik gambar dari registri tempat tugas berjalan. Anda mungkin ingin menjalankan tugas multi-langkah yang menargetkan satu atau beberapa registri selain menjalankan registri. Misalnya, Anda mungkin perlu membuat gambar dalam satu registri, dan menyimpan gambar dengan tag yang berbeda dalam registri kedua yang diakses oleh sistem produksi. Contoh ini memperlihatkan kepada Anda cara membuat tugas seperti itu dan memberikan kredensial untuk registri lain.
Jika Anda belum memiliki registri kedua, buatlah untuk contoh ini. Jika Anda memerlukan registri, lihat tutorial sebelumnya, atau Mulai Cepat: Membuat registri kontainer menggunakan Azure CLI.
Untuk membuat tugas, Anda memerlukan nama server login registri, yang merupakan formulir mycontainerregistrydate.azurecr.io (semua huruf kecil). Dalam contoh ini, Anda menggunakan registri kedua untuk menyimpan gambar yang ditandai dengan tanggal build.
File YAML
Contoh kedua tugas multi-langkah untuk tutorial ini didefinisikan dalam file taskmulti-multiregistry.yaml
, yang berada di akar repo GitHub yang Anda kloning:
version: v1.1.0
steps:
# Build target images
- build: -t {{.Run.Registry}}/hello-world:{{.Run.ID}} -f Dockerfile .
- build: -t {{.Values.regDate}}/hello-world:{{.Run.Date}} -f Dockerfile .
# Run image
- cmd: -t {{.Run.Registry}}/hello-world:{{.Run.ID}}
id: test
detach: true
ports: ["8080:80"]
- cmd: docker stop test
# Push images
- push:
- {{.Run.Registry}}/hello-world:{{.Run.ID}}
- {{.Values.regDate}}/hello-world:{{.Run.Date}}
Tugas multi-langkah ini melakukan hal berikut:
- Menjalankan dua
build
langkah untuk membuat gambar dari Dockerfile di direktori kerja:- Yang pertama menargetkan
Run.Registry
, registri tempat tugas dijalankan, dan ditandai dengan ID eksekusi ACR Tasks yang unik. - Yang kedua menargetkan registri yang diidentifikasi oleh nilai
regDate
, yang Anda tetapkan saat Anda membuat tugas (atau menyediakan melalui filevalues.yaml
eksternal yang diteruskan keaz acr task create
). Gambar ini ditandai dengan tanggal eksekusi.
- Yang pertama menargetkan
- Menjalankan langkah
cmd
untuk menjalankan salah satu kontainer yang dibangun. Contoh ini memulai kontainer yang sudah berjalan lama di latar belakang dan mengembalikan ID kontainer, lalu menghentikan kontainer. Dalam skenario dunia nyata, Anda mungkin menguji kontainer yang sedang berjalan untuk memastikannya berjalan dengan benar. - Dalam langkah
push
, mendorong gambar yang dibangun, yang pertama untuk menjalankan registri, yang kedua ke registri yang diidentifikasi olehregDate
.
Perintah tugas
Menggunakan variabel lingkungan shell yang ditentukan sebelumnya, buat tugas dengan menjalankan perintah az acr task create berikut. Ganti nama registri Anda untuk mycontainerregistrydate.
az acr task create \
--registry $ACR_NAME \
--name example2 \
--context https://github.com/$GIT_USER/acr-build-helloworld-node.git#main \
--file taskmulti-multiregistry.yaml \
--git-access-token $GIT_PAT \
--set regDate=mycontainerregistrydate.azurecr.io
Menambahkan kredensial tugas
Untuk mendorong gambar ke registri yang diidentifikasi oleh nilai regDate
, gunakan az acr task credential add untuk menambahkan kredensial login untuk registri tersebut ke tugas.
Untuk contoh ini, kami sarankan Anda membuat perwakilan layanan dengan akses ke registri yang tercakup dalam peran AcrPush, sehingga memiliki izin untuk mendorong gambar. Untuk membuat perwakilan layanan, gunakan skrip berikut:
#!/bin/bash
# This script requires Azure CLI version 2.25.0 or later. Check version with `az --version`.
# Modify for your environment.
# ACR_NAME: The name of your Azure Container Registry
# SERVICE_PRINCIPAL_NAME: Must be unique within your AD tenant
ACR_NAME=$containerRegistry
SERVICE_PRINCIPAL_NAME=$servicePrincipal
# Obtain the full registry ID
ACR_REGISTRY_ID=$(az acr show --name $ACR_NAME --query "id" --output tsv)
# echo $registryId
# Create the service principal with rights scoped to the registry.
# Default permissions are for docker pull access. Modify the '--role'
# argument value as desired:
# acrpull: pull only
# acrpush: push and pull
# owner: push, pull, and assign roles
PASSWORD=$(az ad sp create-for-rbac --name $SERVICE_PRINCIPAL_NAME --scopes $ACR_REGISTRY_ID --role acrpull --query "password" --output tsv)
USER_NAME=$(az ad sp list --display-name $SERVICE_PRINCIPAL_NAME --query "[].appId" --output tsv)
# Output the service principal's credentials; use these in your services and
# applications to authenticate to the container registry.
echo "Service principal ID: $USER_NAME"
echo "Service principal password: $PASSWORD"
Memberikan ID aplikasi perwakilan layanan dan kata sandi dalam perintah az acr task credential add
berikut. Pastikan untuk memperbarui nama server login mycontainerregistrydate dengan nama registri kedua Anda:
az acr task credential add --name example2 \
--registry $ACR_NAME \
--login-server mycontainerregistrydate.azurecr.io \
--username <service-principal-application-id> \
--password <service-principal-password>
CLI mengembalikan nama server login registri yang Anda tambahkan.
Menguji alur kerja multi-langkah
Seperti dalam contoh sebelumnya, untuk menguji tugas multi-langkah, picu secara manual dengan menjalankan perintah az acr taskd run. Untuk memicu tugas dengan penerapan ke repositori Git, lihat bagian Memicu build dengan penerapan.
az acr task run --registry $ACR_NAME --name example2
Secara default, perintah az acr task run
mengalirkan output log ke konsol Anda saat Anda menjalankan perintah. Output menunjukkan kemajuan menjalankan setiap langkah tugas. Output dikondensasikan untuk menunjukkan langkah-langkah kunci.
Output:
Queued a run with ID: cf1g
Waiting for an agent...
2020/11/20 04:33:39 Downloading source code...
2020/11/20 04:33:41 Finished downloading source code
2020/11/20 04:33:42 Using acb_vol_4569b017-29fe-42bd-83b2-25c45a8ac807 as the home volume
2020/11/20 04:33:42 Creating Docker network: acb_default_network, driver: 'bridge'
2020/11/20 04:33:43 Successfully set up Docker network: acb_default_network
2020/11/20 04:33:43 Setting up Docker configuration...
2020/11/20 04:33:44 Successfully set up Docker configuration
2020/11/20 04:33:44 Logging in to registry: mycontainerregistry.azurecr.io
2020/11/20 04:33:45 Successfully logged into mycontainerregistry.azurecr.io
2020/11/20 04:33:45 Logging in to registry: mycontainerregistrydate.azurecr.io
2020/11/20 04:33:47 Successfully logged into mycontainerregistrydate.azurecr.io
2020/11/20 04:33:47 Executing step ID: acb_step_0. Working directory: '', Network: 'acb_default_network'
2020/11/20 04:33:47 Scanning for dependencies...
2020/11/20 04:33:47 Successfully scanned dependencies
2020/11/20 04:33:47 Launching container with name: acb_step_0
Sending build context to Docker daemon 25.09kB
[...]
Successfully tagged mycontainerregistry.azurecr.io/hello-world:cf1g
2020/11/20 04:33:55 Successfully executed container: acb_step_0
2020/11/20 04:33:55 Executing step ID: acb_step_1. Working directory: '', Network: 'acb_default_network'
2020/11/20 04:33:55 Scanning for dependencies...
2020/11/20 04:33:56 Successfully scanned dependencies
2020/11/20 04:33:56 Launching container with name: acb_step_1
Sending build context to Docker daemon 25.09kB
[...]
Successfully tagged mycontainerregistrydate.azurecr.io/hello-world:20190503-043342z
2020/11/20 04:33:57 Successfully executed container: acb_step_1
2020/11/20 04:33:57 Executing step ID: acb_step_2. Working directory: '', Network: 'acb_default_network'
2020/11/20 04:33:57 Launching container with name: acb_step_2
721437ff674051b6be63cbcd2fa8eb085eacbf38d7d632f1a079320133182101
2020/11/20 04:33:58 Successfully executed container: acb_step_2
2020/11/20 04:33:58 Executing step ID: acb_step_3. Working directory: '', Network: 'acb_default_network'
2020/11/20 04:33:58 Launching container with name: acb_step_3
test
2020/11/20 04:34:09 Successfully executed container: acb_step_3
2020/11/20 04:34:09 Executing step ID: acb_step_4. Working directory: '', Network: 'acb_default_network'
2020/11/20 04:34:09 Pushing image: mycontainerregistry.azurecr.io/hello-world:cf1g, attempt 1
The push refers to repository [mycontainerregistry.azurecr.io/hello-world]
[...]
2020/11/20 04:34:12 Successfully pushed image: mycontainerregistry.azurecr.io/hello-world:cf1g
2020/11/20 04:34:12 Pushing image: mycontainerregistrydate.azurecr.io/hello-world:20190503-043342z, attempt 1
The push refers to repository [mycontainerregistrydate.azurecr.io/hello-world]
[...]
2020/11/20 04:34:19 Successfully pushed image: mycontainerregistrydate.azurecr.io/hello-world:20190503-043342z
2020/11/20 04:34:19 Step ID: acb_step_0 marked as successful (elapsed time in seconds: 8.125744)
2020/11/20 04:34:19 Populating digests for step ID: acb_step_0...
2020/11/20 04:34:21 Successfully populated digests for step ID: acb_step_0
2020/11/20 04:34:21 Step ID: acb_step_1 marked as successful (elapsed time in seconds: 2.009281)
2020/11/20 04:34:21 Populating digests for step ID: acb_step_1...
2020/11/20 04:34:23 Successfully populated digests for step ID: acb_step_1
2020/11/20 04:34:23 Step ID: acb_step_2 marked as successful (elapsed time in seconds: 0.795440)
2020/11/20 04:34:23 Step ID: acb_step_3 marked as successful (elapsed time in seconds: 11.446775)
2020/11/20 04:34:23 Step ID: acb_step_4 marked as successful (elapsed time in seconds: 9.734973)
2020/11/20 04:34:23 The following dependencies were found:
2020/11/20 04:34:23
- image:
registry: mycontainerregistry.azurecr.io
repository: hello-world
tag: cf1g
digest: sha256:75354e9edb995e8661438bad9913deed87a185fddd0193811f916d684b71a5d2
runtime-dependency:
registry: registry.hub.docker.com
repository: library/node
tag: 15-alpine
digest: sha256:8dafc0968fb4d62834d9b826d85a8feecc69bd72cd51723c62c7db67c6dec6fa
git:
git-head-revision: 9d9023473c46a5e2c315681b11eb4552ef0faccc
- image:
registry: mycontainerregistrydate.azurecr.io
repository: hello-world
tag: 20190503-043342z
digest: sha256:75354e9edb995e8661438bad9913deed87a185fddd0193811f916d684b71a5d2
runtime-dependency:
registry: registry.hub.docker.com
repository: library/node
tag: 15-alpine
digest: sha256:8dafc0968fb4d62834d9b826d85a8feecc69bd72cd51723c62c7db67c6dec6fa
git:
git-head-revision: 9d9023473c46a5e2c315681b11eb4552ef0faccc
Run ID: cf1g was successful after 46s
Langkah berikutnya
Dalam tutorial ini, Anda belajar cara membuat tugas multi-langkah berbasis multi-kontainer yang secara otomatis memicu ketika Anda melakukan kode sumber ke repositori Git. Untuk fitur lanjutan tugas multi-langkah, termasuk eksekusi langkah paralel dan dependen, lihat referensi YAML ACR Tasks. Beralih ke tutorial berikutnya untuk mempelajari cara membuat tugas yang memicu build saat gambar dasar dari gambar kontainer diperbarui.