Search code examples
dockerazure-machine-learning-service

How to correctly specify a private ACR Docker image in an Azure ML Pipeline?


I created a private Azure Container Registry, and pushed a docker image to that registry. I was trying to understand the correct way to access that registry in my pipeline, and my understanding was that I needed to set the following info in the run configuration:

        run_config.environment.docker.base_image = "myprivateacr.azurecr.io/mydockerimage:0.0.1"
        run_config.environment.docker.base_image_registry.username = "MyPrivateACR"
        run_config.environment.docker.base_image_registry.password = "<the password for the registry>"

Let's assume that I correctly provided the username and password. Any idea why this didn't work? Or: is there an example of a pipeline notebook that uses a docker image that's in a private docker registry, and thus deals with this type of authentication issue?


Solution

  • There's a separate address property for a custom image registry. Try specifying it this way:

    run_config.environment.docker.base_image = "mydockerimage:0.0.1"
    run_config.environment.docker.base_image_registry.address = "myprivateacr.azurecr.io"
    run_config.environment.docker.base_image_registry.username = "MyPrivateACR"
    run_config.environment.docker.base_image_registry.password = "<the password for the registry>"