Cannot pull image from Azure Container Registry with Managed identities. How to fix this?

Jin Sato 0 Reputation points

I have set up an Azure pipeline to build and push a docker image to an Azure Container Registry. Then I set up a managed identity in the deployment center in an Azure Web App. However, I get an error in the deployment center:
User's image

Troubleshooting/setups I have done:

  • The Image name and tags are correct and they do exist in the Azure Container Registry Repository
  • The managed identity has the AcrPull role assignment for the Azure Container Registry
  • The Azure Container Registry has public network access to all networks

Please help me!

EDIT: I also tried to set it up as Admin Credentials instead of managed identity but that also did not work as it gave me an error: "Faild to load ACR Tags - failed"
User's image

Azure Container Registry
Azure Container Registry
An Azure service that provides a registry of Docker and Open Container Initiative images.
427 questions
Azure App Service
Azure App Service
Azure App Service is a service used to create and deploy scalable, mission-critical web apps.
7,381 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Jin Sato 0 Reputation points

    I figured out the reason. It is because of the structure you store your images in the Azure Container Registry. In Azure Container Registry, it allows you to store the image in the repository with a "/". Eg.
    "folder/app-image". However, storing it like this will not let you configure the settings in the Deployment Center the way you want because the images don't allow you to have "/". I tried doing a backslash hoping it would escape e.g. "/" but that did not work. There seems to be a limitation in that regard.

    Now if you still want to make it work with a "/" try doing it in the Azure CLI or Azure Cloud Shell. I haven't tested it and will not since I want to configure it through the Azure portal. What I did was just remove the folder structure and everything worked.