Hi!
In this article I will show you how you can lock a container image or a repository (so that it can’t be deleted or updated) hosted in Azure Container Registry (ACR).
By default, a tagged image in Azure Container Registry is mutable, so with appropriate permissions you can repeatedly update and push an image with the same tag to a registry. Container images can also be deleted as needed. This behavior is useful when you develop images and need to maintain a size for your registry.
However, when you deploy a container image to production, you might need an immutable container image. An immutable image is one that you can’t accidentally delete or overwrite.
Show the current repository attributes
az acr repository show \
--name myregistry --repository myrepo \
--output jsonc
Show the current image attributes
az acr repository show \
--name myregistry --image myimage:tag \
--output jsonc
Lock an image by tag
az acr repository update \
--name myregistry --image myimage:tag \
--write-enabled false
Lock an image by manifest digest
az acr repository update \
--name myregistry --image myimage@sha256:123456abcdefg \
--write-enabled false
Lock a repository
az acr repository update \
--name myregistry --repository myrepo \
--write-enabled false
Protect an image from deletion
az acr repository update \
--name myregistry --repository myrepo \
--delete-enabled false --write-enabled true
Prevent read (pull) operations on an image or repository
az acr repository update \
--name myregistry --image myimage:tag \
--read-enabled false
az acr repository update \
--name myregistry --repository myrepo \
--read-enabled false
Unlock an image or repository
az acr repository update \
--name myregistry --image myimage:tag \
--delete-enabled true --write-enabled true
az acr repository update \
--name myregistry --repository myrepo \
--delete-enabled true --write-enabled true
Maxime.