#credentials #docker #azure #container #virtualization

app docker-credential-acr-login

为Azure容器注册表(ACR)提供的docker凭证助手

2个版本

0.1.1 2024年1月25日
0.1.0 2023年11月21日

#391 in 身份验证

MIT许可证

18KB
83

docker-credential-acr-login

Azure容器注册表(ACR)的docker凭证助手。这允许您自动登录到Azure容器注册表,而无需先执行az acr login

如何使用它?

使用以下命令安装它

cargo install docker-credential-acr-login

并确保docker-credential-acr-login在您的PATH中可用。

接下来,在$HOME/.docker/config.json中,添加以下内容

{
    "credsStore": "acr-login"
}

来处理所有Azure注册表的请求,或者

{
    "credHelpers": {
        "<registry>.azurecr.io": "acr-login"
    }
}

来处理特定注册表的请求。

所需配置

在运行Docker之前,您必须

  • 将环境变量AZURE_TENANT_ID设置为ACR所在的租户ID
  • 确保您已设置Azure凭证详细信息;例如,使用以下方法之一
    • 使用az login登录Azure CLI
    • 设置环境变量AZURE_CLIENT_IDAZURE_CLIENT_SECRET为适当的值
    • 根据DefaultAzureCredential的任何其他方法
  • 确保您所使用的任何身份都拥有ACR上的AcrPullReader(用于拉取)以及AcrPush(用于推送)

日志记录

在运行docker操作之前,您可以通过设置环境变量ACR_LOGIN_LOG_LEVELerrorwarninfodebugtrace之一来设置日志级别。

示例trace输出

$ 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-alpine

依赖关系

~13–27MB
~403K SLoC