Jak využívat a udržovat veřejný obsah pomocí úloh služby Azure Container Registry
Tento článek obsahuje ukázkový pracovní postup ve službě Azure Container Registry, který vám pomůže spravovat využívání a údržbu veřejného obsahu:
- Umožňuje importovat místní kopie závislých veřejných imagí.
- Ověření veřejných imagí prostřednictvím kontroly zabezpečení a funkčního testování
- Zvýšení úrovně imagí do privátních registrů pro interní použití
- Aktivace aktualizací základní image pro aplikace závislé na veřejném obsahu
- K automatizaci tohoto pracovního postupu použijte úlohy služby Azure Container Registry.
Pracovní postup je shrnutý na následujícím obrázku:
Vrátný pracovní postup importu pomáhá spravovat závislosti vaší organizace na externě spravovaných artefaktech – například image zdrojové z veřejných registrů, včetně Docker Hubu, GCR, Quay, GitHub Container Registry, Microsoft Container Registry nebo dokonce jiných registrů kontejnerů Azure.
Základní informace o rizicích zavedených závislostmi na veřejném obsahu a o tom, jak je pomocí služby Azure Container Registry zmírnit, najdete v příspěvku na blogu o využití veřejného obsahu OCI a správu veřejného obsahu pomocí služby Azure Container Registry.
K dokončení tohoto návodu můžete použít Azure Cloud Shell nebo místní instalaci Azure CLI. Doporučuje se Azure CLI verze 2.10 nebo novější. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.
Přehled scénáře
Tento názorný postup nastavuje:
- Tři registry kontejnerů představující:
- Simulovaný Docker Hub (
publicregistry
) pro podporu změny základní image - Týmový registr (
contoso
) pro sdílení privátních imagí - Sdílený registr společnosti nebo týmu (
baseartifacts
) pro importovaný veřejný obsah
- Simulovaný Docker Hub (
- Úloha ACR v každém registru. Úkoly:
- Vytvoření simulované veřejné
node
image - Import a ověření
node
image do sdíleného registru společnosti nebo týmu - Sestavení a nasazení
hello-world
image
- Vytvoření simulované veřejné
- Definice úloh ACR, včetně konfigurací pro:
- Kolekce přihlašovacích údajů registru, což jsou ukazatele na trezor klíčů
- Kolekce tajných kódů, která je k dispozici v rámci trezoru
acr-task.yaml
klíčů, což jsou ukazatele na trezor klíčů - Kolekce nakonfigurovaných hodnot používaných v rámci
acr-task.yaml
- Trezor klíčů Azure pro zabezpečení všech tajných kódů
- Instance kontejneru Azure, která hostuje
hello-world
aplikaci sestavení
Požadavky
Následující kroky nakonfigurují hodnoty pro prostředky vytvořené a používané v návodu.
Nastavení proměnných prostředí
Nakonfigurujte proměnné jedinečné pro vaše prostředí. Dodržujeme osvědčené postupy pro umístění prostředků s trvalým obsahem do vlastní skupiny prostředků, abychom minimalizovali náhodné odstranění. Pokud ale chcete, můžete tyto proměnné umístit do jedné skupiny prostředků.
Příklady v tomto článku jsou formátovány pro prostředí Bash.
# Set the three registry names, must be globally unique:
REGISTRY_PUBLIC=publicregistry
REGISTRY_BASE_ARTIFACTS=contosobaseartifacts
REGISTRY=contoso
# set the location all resources will be created in:
RESOURCE_GROUP_LOCATION=eastus
# default resource groups
REGISTRY_PUBLIC_RG=${REGISTRY_PUBLIC}-rg
REGISTRY_BASE_ARTIFACTS_RG=${REGISTRY_BASE_ARTIFACTS}-rg
REGISTRY_RG=${REGISTRY}-rg
# fully qualified registry urls
REGISTRY_DOCKERHUB_URL=docker.io
REGISTRY_PUBLIC_URL=${REGISTRY_PUBLIC}.azurecr.io
REGISTRY_BASE_ARTIFACTS_URL=${REGISTRY_BASE_ARTIFACTS}.azurecr.io
REGISTRY_URL=${REGISTRY}.azurecr.io
# Azure key vault for storing secrets, name must be globally unique
AKV=acr-task-credentials
AKV_RG=${AKV}-rg
# ACI for hosting the deployed application
ACI=hello-world-aci
ACI_RG=${ACI}-rg
Úložiště a tokeny Gitu
Pokud chcete simulovat prostředí, rozvětvte všechna následující úložiště Git do úložišť, která můžete spravovat.
- https://github.com/importing-public-content/base-image-node.git
- https://github.com/importing-public-content/import-baseimage-node.git
- https://github.com/importing-public-content/hello-world.git
Potom aktualizujte následující proměnné pro vaše forkovaná úložiště.
Připojený :main
na konec adres URL gitu představuje výchozí větev úložiště.
GIT_BASE_IMAGE_NODE=https://github.com/<your-fork>/base-image-node.git#main
GIT_NODE_IMPORT=https://github.com/<your-fork>/import-baseimage-node.git#main
GIT_HELLO_WORLD=https://github.com/<your-fork>/hello-world.git#main
K klonování a vytváření webhooků Gitu potřebujete přístupový token GitHubu (PAT) pro ACR Tasks. Postup vytvoření tokenu s požadovanými oprávněními k privátnímu úložišti najdete v tématu Vytvoření přístupového tokenu GitHubu.
GIT_TOKEN=<set-git-token-here>
Přihlašovací údaje docker Hubu
Pokud se chcete vyhnout omezování požadavků a žádostí o identitu při načítání imagí z Docker Hubu , vytvořte token Docker Hubu. Pak nastavte následující proměnné prostředí:
REGISTRY_DOCKERHUB_USER=<yourusername>
REGISTRY_DOCKERHUB_PASSWORD=<yourtoken>
Vytváření registrů
Pomocí příkazů Azure CLI vytvořte tři registry kontejnerů úrovně Premium, z nichž každá je ve vlastní skupině prostředků:
az group create --name $REGISTRY_PUBLIC_RG --location $RESOURCE_GROUP_LOCATION
az acr create --resource-group $REGISTRY_PUBLIC_RG --name $REGISTRY_PUBLIC --sku Premium
az group create --name $REGISTRY_BASE_ARTIFACTS_RG --location $RESOURCE_GROUP_LOCATION
az acr create --resource-group $REGISTRY_BASE_ARTIFACTS_RG --name $REGISTRY_BASE_ARTIFACTS --sku Premium
az group create --name $REGISTRY_RG --location $RESOURCE_GROUP_LOCATION
az acr create --resource-group $REGISTRY_RG --name $REGISTRY --sku Premium
Vytvoření trezoru klíčů a nastavení tajných kódů
Vytvoření trezoru klíčů:
az group create --name $AKV_RG --location $RESOURCE_GROUP_LOCATION
az keyvault create --resource-group $AKV_RG --name $AKV
Nastavte uživatelské jméno a token Docker Hubu v trezoru klíčů:
az keyvault secret set \
--vault-name $AKV \
--name registry-dockerhub-user \
--value $REGISTRY_DOCKERHUB_USER
az keyvault secret set \
--vault-name $AKV \
--name registry-dockerhub-password \
--value $REGISTRY_DOCKERHUB_PASSWORD
Nastavte a ověřte pat Gitu v trezoru klíčů:
az keyvault secret set --vault-name $AKV --name github-token --value $GIT_TOKEN
az keyvault secret show --vault-name $AKV --name github-token --query value -o tsv
Vytvoření skupiny prostředků pro instanci kontejneru Azure
Tato skupina prostředků se používá v pozdější úloze při nasazování hello-world
image.
az group create --name $ACI_RG --location $RESOURCE_GROUP_LOCATION
Vytvoření veřejné node
základní image
Pokud chcete simulovat image v node
Docker Hubu, vytvořte úlohu ACR pro sestavení a údržbu veřejné image. Toto nastavení umožňuje simulaci změn node
správci image.
az acr task create \
--name node-public \
-r $REGISTRY_PUBLIC \
-f acr-task.yaml \
--context $GIT_BASE_IMAGE_NODE \
--git-access-token $(az keyvault secret show \
--vault-name $AKV \
--name github-token \
--query value -o tsv) \
--set REGISTRY_FROM_URL=${REGISTRY_DOCKERHUB_URL}/ \
--assign-identity
Abyste se vyhnuli omezování Dockeru, přidejte do úlohy přihlašovací údaje Docker Hubu. Příkaz přihlašovacích údajů úlohy acr se může použít k předání přihlašovacích údajů Dockeru do libovolného registru, včetně Docker Hubu.
az acr task credential add \
-n node-public \
-r $REGISTRY_PUBLIC \
--login-server $REGISTRY_DOCKERHUB_URL \
-u https://${AKV}.vault.azure.net/secrets/registry-dockerhub-user \
-p https://${AKV}.vault.azure.net/secrets/registry-dockerhub-password \
--use-identity [system]
Udělte úkolu přístup ke čtení hodnot z trezoru klíčů:
az keyvault set-policy \
--name $AKV \
--resource-group $AKV_RG \
--object-id $(az acr task show \
--name node-public \
--registry $REGISTRY_PUBLIC \
--query identity.principalId --output tsv) \
--secret-permissions get
Úlohy můžou aktivovat potvrzení Gitu, aktualizace základní image, časovače nebo ruční spuštění.
Spusťte úlohu ručně a vygenerujte node
image:
az acr task run -r $REGISTRY_PUBLIC -n node-public
Výpis image v simulovaném veřejném registru:
az acr repository show-tags -n $REGISTRY_PUBLIC --repository node
hello-world
Vytvoření image
Na základě simulované veřejné node
image vytvořte hello-world
image.
Vytvoření tokenu pro získání přístupu k simulovanému veřejnému registru
Vytvořte přístupový token pro simulovaný veřejný registr s vymezeným oborem pull
. Pak ho nastavte v trezoru klíčů:
az keyvault secret set \
--vault-name $AKV \
--name "registry-${REGISTRY_PUBLIC}-user" \
--value "registry-${REGISTRY_PUBLIC}-user"
az keyvault secret set \
--vault-name $AKV \
--name "registry-${REGISTRY_PUBLIC}-password" \
--value $(az acr token create \
--name "registry-${REGISTRY_PUBLIC}-user" \
--registry $REGISTRY_PUBLIC \
--scope-map _repositories_pull \
-o tsv \
--query credentials.passwords[0].value)
Vytvoření tokenu pro získání přístupu službou Azure Container Instances
Vytvořte přístupový token pro registr hostující image s oborem hello-world
vyžádání. Pak ho nastavte v trezoru klíčů:
az keyvault secret set \
--vault-name $AKV \
--name "registry-${REGISTRY}-user" \
--value "registry-${REGISTRY}-user"
az keyvault secret set \
--vault-name $AKV \
--name "registry-${REGISTRY}-password" \
--value $(az acr token create \
--name "registry-${REGISTRY}-user" \
--registry $REGISTRY \
--repository hello-world content/read \
-o tsv \
--query credentials.passwords[0].value)
Vytvoření úlohy pro sestavení a údržbu hello-world
image
Následující příkaz vytvoří úlohu z definice v acr-tasks.yaml
úložišti hello-world
. Kroky úlohy sestaví hello-world
image a pak ji nasadí do služby Azure Container Instances. Skupina prostředků pro službu Azure Container Instances byla vytvořena v předchozí části. az container create
Voláním úlohy pouze s rozdílem v tomto návodu image:tag
se úloha nasadí do stejné instance.
az acr task create \
-n hello-world \
-r $REGISTRY \
-f acr-task.yaml \
--context $GIT_HELLO_WORLD \
--git-access-token $(az keyvault secret show \
--vault-name $AKV \
--name github-token \
--query value -o tsv) \
--set REGISTRY_FROM_URL=${REGISTRY_PUBLIC_URL}/ \
--set KEYVAULT=$AKV \
--set ACI=$ACI \
--set ACI_RG=$ACI_RG \
--assign-identity
Přidejte přihlašovací údaje k úloze pro simulovaný veřejný registr:
az acr task credential add \
-n hello-world \
-r $REGISTRY \
--login-server $REGISTRY_PUBLIC_URL \
-u https://${AKV}.vault.azure.net/secrets/registry-${REGISTRY_PUBLIC}-user \
-p https://${AKV}.vault.azure.net/secrets/registry-${REGISTRY_PUBLIC}-password \
--use-identity [system]
Udělte úkolu přístup ke čtení hodnot z trezoru klíčů:
az keyvault set-policy \
--name $AKV \
--resource-group $AKV_RG \
--object-id $(az acr task show \
--name hello-world \
--registry $REGISTRY \
--query identity.principalId --output tsv) \
--secret-permissions get
Udělením přístupu ke skupině prostředků udělte úloze přístup k vytvoření a správě služby Azure Container Instances:
az role assignment create \
--assignee $(az acr task show \
--name hello-world \
--registry $REGISTRY \
--query identity.principalId --output tsv) \
--scope $(az group show -n $ACI_RG --query id -o tsv) \
--role owner
Když je úloha vytvořená a nakonfigurovaná, spusťte úlohu, která sestaví a nasadí hello-world
image:
az acr task run -r $REGISTRY -n hello-world
Po vytvoření získejte IP adresu kontejneru hostujícího hello-world
image.
az container show \
--resource-group $ACI_RG \
--name ${ACI} \
--query ipAddress.ip \
--out tsv
V prohlížeči přejděte na IP adresu a zobrazte spuštěnou aplikaci.
Aktualizace základní image pomocí "pochybné" změny
Tato část simuluje změnu základní image, která by mohla způsobit problémy v prostředí.
- Otevřete
Dockerfile
v rozvětvenémbase-image-node
úložišti. BACKGROUND_COLOR
Změňte nastavení proOrange
simulaci změny.
ARG REGISTRY_NAME=
FROM ${REGISTRY_NAME}node:15-alpine
ENV NODE_VERSION 15-alpine
ENV BACKGROUND_COLOR Orange
Potvrďte změnu a sledujte, jak úkoly ACR automaticky začnou sestavovat.
Sledujte, jak se má úkol spustit:
watch -n1 az acr task list-runs -r $REGISTRY_PUBLIC -o table
Nakonec by se měl zobrazit stav Succeeded
na základě triggeru Commit
:
RUN ID TASK PLATFORM STATUS TRIGGER STARTED DURATION
-------- -------- ---------- --------- --------- -------------------- ----------
ca4 hub-node linux Succeeded Commit 2020-10-24T05:02:29Z 00:00:22
Stisknutím ctrl+C ukončete příkaz kukátku a zobrazte protokoly pro poslední spuštění:
az acr task logs -r $REGISTRY_PUBLIC
node
Jakmile se image dokončí, watch
začne služba ACR Tasks automaticky vytvářet hello-world
image:
watch -n1 az acr task list-runs -r $REGISTRY -o table
Nakonec by se měl zobrazit stav Succeeded
na základě triggeru Image Update
:
RUN ID TASK PLATFORM STATUS TRIGGER STARTED DURATION
-------- ----------- ---------- --------- ------------ -------------------- ----------
dau hello-world linux Succeeded Image Update 2020-10-24T05:08:45Z 00:00:31
Stisknutím ctrl+C ukončete příkaz kukátku a zobrazte protokoly pro poslední spuštění:
az acr task logs -r $REGISTRY
Po dokončení získejte IP adresu webu, který je hostitelem aktualizované hello-world
image:
az container show \
--resource-group $ACI_RG \
--name ${ACI} \
--query ipAddress.ip \
--out tsv
V prohlížeči přejděte na web, který by měl mít oranžové (pochybovatelné) pozadí.
Vrácení se sem
V tuto chvíli jste vytvořili hello-world
image, která je automaticky vytvořená na potvrzeních Gitu a změnách základní node
image. V tomto příkladu se úloha sestaví na základní imagi ve službě Azure Container Registry, ale dá se použít jakýkoli podporovaný registr.
Aktualizace základní image automaticky znovu spustí úlohu při node
aktualizaci image. Jak je vidět zde, nejsou všechny aktualizace hledané.
Hradené importy veřejného obsahu
Aby se zabránilo nadřazených změnám způsobujícím zásadní úlohy, může být přidáno prohledávání zabezpečení a funkční testy.
V této části vytvoříte úlohu ACR pro:
- Sestavení testovací image
- Spuštění funkčního testovacího skriptu
./test.sh
na testovací imagi - Pokud se testy imagí úspěšně prověří, naimportujte veřejnou image do registru baseimages .
Přidání testování automatizace
Aby bylo možné zamyšlovat veškerý nadřazený obsah, implementuje se automatizované testování. V tomto příkladu test.sh
je k dispozici, který kontroluje $BACKGROUND_COLOR
. Pokud test selže, vrátí se hodnota EXIT_CODE
, 1
která způsobí selhání kroku úlohy ACR a ukončí spuštění úlohy. Testy lze rozšířit v libovolné formě nástrojů, včetně výsledků protokolování. Bránu spravuje předávací/neúspěšná odpověď ve skriptu, která je zde reprodukována:
if [ ""$(echo $BACKGROUND_COLOR | tr '[:lower:]' '[:upper:]') = 'RED' ]; then
echo -e "\e[31mERROR: Invalid Color:\e[0m" ${BACKGROUND_COLOR}
EXIT_CODE=1
else
echo -e "\e[32mValidation Complete - No Known Errors\e[0m"
fi
exit ${EXIT_CODE}
Úkol YAML
acr-task.yaml
Zkontrolujte v úložišti import-baseimage-node
následující kroky:
- Sestavte testovací základní image pomocí následujícího souboru Dockerfile:
ARG REGISTRY_FROM_URL= FROM ${REGISTRY_FROM_URL}node:15-alpine WORKDIR /test COPY ./test.sh . CMD ./test.sh
- Po dokončení ověřte image spuštěním kontejneru, který se spustí.
./test.sh
- Pouze pokud se úspěšně dokončilo, spusťte kroky importu, které jsou zamknuty pomocí
when: ['validate-base-image']
version: v1.1.0
steps:
- id: build-test-base-image
# Build off the base image we'll track
# Add a test script to do unit test validations
# Note: the test validation image isn't saved to the registry
# but the task logs captures log validation results
build: >
--build-arg REGISTRY_FROM_URL={{.Values.REGISTRY_FROM_URL}}
-f ./Dockerfile
-t {{.Run.Registry}}/node-import:test
.
- id: validate-base-image
# only continues if node-import:test returns a non-zero code
when: ['build-test-base-image']
cmd: "{{.Run.Registry}}/node-import:test"
- id: pull-base-image
# import the public image to base-artifacts
# Override the stable tag,
# and create a unique tag to enable rollback
# to a previously working image
when: ['validate-base-image']
cmd: >
docker pull {{.Values.REGISTRY_FROM_URL}}node:15-alpine
- id: retag-base-image
when: ['pull-base-image']
cmd: docker tag {{.Values.REGISTRY_FROM_URL}}node:15-alpine {{.Run.Registry}}/node:15-alpine
- id: retag-base-image-unique-tag
when: ['pull-base-image']
cmd: docker tag {{.Values.REGISTRY_FROM_URL}}node:15-alpine {{.Run.Registry}}/node:15-alpine-{{.Run.ID}}
- id: push-base-image
when: ['retag-base-image', 'retag-base-image-unique-tag']
push:
- "{{.Run.Registry}}/node:15-alpine"
- "{{.Run.Registry}}/node:15-alpine-{{.Run.ID}}"
Vytvoření úlohy pro import a testování základní image
az acr task create \
--name base-import-node \
-f acr-task.yaml \
-r $REGISTRY_BASE_ARTIFACTS \
--context $GIT_NODE_IMPORT \
--git-access-token $(az keyvault secret show \
--vault-name $AKV \
--name github-token \
--query value -o tsv) \
--set REGISTRY_FROM_URL=${REGISTRY_PUBLIC_URL}/ \
--assign-identity
Přidejte přihlašovací údaje k úloze pro simulovaný veřejný registr:
az acr task credential add \
-n base-import-node \
-r $REGISTRY_BASE_ARTIFACTS \
--login-server $REGISTRY_PUBLIC_URL \
-u https://${AKV}.vault.azure.net/secrets/registry-${REGISTRY_PUBLIC}-user \
-p https://${AKV}.vault.azure.net/secrets/registry-${REGISTRY_PUBLIC}-password \
--use-identity [system]
Udělte úkolu přístup ke čtení hodnot z trezoru klíčů:
az keyvault set-policy \
--name $AKV \
--resource-group $AKV_RG \
--object-id $(az acr task show \
--name base-import-node \
--registry $REGISTRY_BASE_ARTIFACTS \
--query identity.principalId --output tsv) \
--secret-permissions get
Spusťte úlohu importu:
az acr task run -n base-import-node -r $REGISTRY_BASE_ARTIFACTS
Poznámka:
Pokud úloha selže z důvodu ./test.sh: Permission denied
, ujistěte se, že skript má oprávnění ke spuštění, a potvrďte ho zpět do úložiště Git:
chmod +x ./test.sh
Aktualizace hello-world
image pro sestavení z vrátné node
image
Vytvořte přístupový token pro přístup k registru base-artifacts s vymezeným read
oborem z node
úložiště. Pak nastavte v trezoru klíčů:
az keyvault secret set \
--vault-name $AKV \
--name "registry-${REGISTRY_BASE_ARTIFACTS}-user" \
--value "registry-${REGISTRY_BASE_ARTIFACTS}-user"
az keyvault secret set \
--vault-name $AKV \
--name "registry-${REGISTRY_BASE_ARTIFACTS}-password" \
--value $(az acr token create \
--name "registry-${REGISTRY_BASE_ARTIFACTS}-user" \
--registry $REGISTRY_BASE_ARTIFACTS \
--repository node content/read \
-o tsv \
--query credentials.passwords[0].value)
Přidejte přihlašovací údaje k úloze hello-world pro registr základních artefaktů:
az acr task credential add \
-n hello-world \
-r $REGISTRY \
--login-server $REGISTRY_BASE_ARTIFACTS_URL \
-u https://${AKV}.vault.azure.net/secrets/registry-${REGISTRY_BASE_ARTIFACTS}-user \
-p https://${AKV}.vault.azure.net/secrets/registry-${REGISTRY_BASE_ARTIFACTS}-password \
--use-identity [system]
Aktualizujte úlohu tak, aby se změnilo REGISTRY_FROM_URL
použití BASE_ARTIFACTS
registru.
az acr task update \
-n hello-world \
-r $REGISTRY \
--set KEYVAULT=$AKV \
--set REGISTRY_FROM_URL=${REGISTRY_BASE_ARTIFACTS_URL}/ \
--set ACI=$ACI \
--set ACI_RG=$ACI_RG
Spusťte úlohu hello-world a změňte její základní závislost image:
az acr task run -r $REGISTRY -n hello-world
Aktualizace základní image s platnou změnou
- Otevřete úložiště v
base-image-node
úložištiDockerfile
. BACKGROUND_COLOR
Změňte nastavení proGreen
simulaci platné změny.
ARG REGISTRY_NAME=
FROM ${REGISTRY_NAME}node:15-alpine
ENV NODE_VERSION 15-alpine
ENV BACKGROUND_COLOR Green
Potvrďte změnu a sledujte posloupnost aktualizací:
watch -n1 az acr task list-runs -r $REGISTRY_PUBLIC -o table
Po spuštění zadejte Ctrl+C a sledujte protokoly:
az acr task logs -r $REGISTRY_PUBLIC
Po dokončení monitorujte úlohu importu základní image:
watch -n1 az acr task list-runs -r $REGISTRY_BASE_ARTIFACTS -o table
Po spuštění zadejte Ctrl+C a sledujte protokoly:
az acr task logs -r $REGISTRY_BASE_ARTIFACTS
Po dokončení monitorujte úkol hello-world :
watch -n1 az acr task list-runs -r $REGISTRY -o table
Po spuštění zadejte Ctrl+C a sledujte protokoly:
az acr task logs -r $REGISTRY
Po dokončení získejte IP adresu webu, který je hostitelem aktualizované hello-world
image:
az container show \
--resource-group $ACI_RG \
--name ${ACI} \
--query ipAddress.ip \
--out tsv
V prohlížeči přejděte na web, který by měl mít zelené (platné) pozadí.
Zobrazení zamkovaného pracovního postupu
Opakujte kroky v předchozí části s červenou barvou pozadí.
Dockerfile
Otevření úložiště v úložištibase-image-node
BACKGROUND_COLOR
Změňte nastavení proRed
simulaci neplatné změny.
ARG REGISTRY_NAME=
FROM ${REGISTRY_NAME}node:15-alpine
ENV NODE_VERSION 15-alpine
ENV BACKGROUND_COLOR Red
Potvrďte změnu a sledujte posloupnost aktualizací:
watch -n1 az acr task list-runs -r $REGISTRY_PUBLIC -o table
Po spuštění zadejte Ctrl+C a sledujte protokoly:
az acr task logs -r $REGISTRY_PUBLIC
Po dokončení monitorujte úlohu importu základní image:
watch -n1 az acr task list-runs -r $REGISTRY_BASE_ARTIFACTS -o table
Po spuštění zadejte Ctrl+C a sledujte protokoly:
az acr task logs -r $REGISTRY_BASE_ARTIFACTS
V tomto okamžiku by se mělo zobrazit ověření neúspěšného ověření úlohy základního hello-world
importu uzlu a zastavení sekvence pro publikování aktualizace. Výstup se podobá tomuto:
[...]
2020/10/30 03:57:39 Launching container with name: validate-base-image
Validating Image
NODE_VERSION: 15-alpine
BACKGROUND_COLOR: Red
ERROR: Invalid Color: Red
2020/10/30 03:57:40 Container failed during run: validate-base-image. No retries remaining.
failed to run step ID: validate-base-image: exit status 1
Publikování aktualizace do hello-world
Změny obrázku hello-world
budou nadále používat poslední ověřenou node
image.
Všechny další změny základní node
image, které projdou ověřenými ověřeními, aktivují aktualizace základní image image.hello-world
Vyčištění
Pokud už je nepotřebujete, odstraňte prostředky použité v tomto článku.
az group delete -n $REGISTRY_RG --no-wait -y
az group delete -n $REGISTRY_PUBLIC_RG --no-wait -y
az group delete -n $REGISTRY_BASE_ARTIFACTS_RG --no-wait -y
az group delete -n $AKV_RG --no-wait -y
az group delete -n $ACI_RG --no-wait -y
Další kroky
V tomto článku jste použili úlohy ACR k vytvoření automatizovaného pracovního postupu gating k zavedení aktualizovaných základních imagí do vašeho prostředí. Viz související informace o správě imagí ve službě Azure Container Registry.