A docker credential helper for Azure Container Registries (ACRs). This allows you to automatically log into Azure Container Registries without having to az acr login first.
Install it with
cargo install docker-credential-acr-loginand ensure docker-credential-acr-login is available on your PATH.
Next, in $HOME/.docker/config.json, either add:
{
"credsStore": "acr-login"
}to handle requests for all Azure registries, or
{
"credHelpers": {
"<registry>.azurecr.io": "acr-login"
}
}to handle requests for a specific registry.
Before running Docker, you must:
- set the environment variable
AZURE_TENANT_IDto the tenant ID that the ACR resides in - ensure that you have Azure credential details set up; e.g. one of
- logged into Azure CLI using
az login - set
AZURE_CLIENT_IDandAZURE_CLIENT_SECRETenvironment variables with appropriate values - any other method as per DefaultAzureCredential
- logged into Azure CLI using
- ensure that whichever identity you are using has
AcrPullandReaderon the ACR (to pull) andAcrPush(to push)
Before running docker operations you can set the logging level by setting the environment variable ACR_LOGIN_LOG_LEVEL to one of error, warn, info, debug, or trace.
Example trace output:
$ docker pull dockercredentialacrlogin.azurecr.io/python:3.8-alpine
TRACE - Params: [("grant_type", "access_token"), ("service", "dockercredentialacrlogin.azurecr.io"), ("tenant", "<tenant>"), ("access_token", "eyJ...qiw")]
TRACE - Credentials: Object {"Secret": String("eyJ...beA"), "Username": String("000...000")}
3.8-alpine: Pulling from python
Digest: sha256:c494835919a916a1b1248eebe11815ada264e7b6b29f8784060c5f39b20b4747
Status: Downloaded newer image for dockercredentialacrlogin.azurecr.io/python:3.8-alpine
dockercredentialacrlogin.azurecr.io/python:3.8-alpineThis project's current MSRV is 1.85.1.