az acr - 如果单个帐户有多个订阅,则无法找到存储库

Pra*_*oni 2 azure azure-cli azure-container-registry

我正在使用Azure CLI v2.0.62

我在 Azure 中的单个帐户上确实有多个订阅 - S1、S2、S3、S4。

我正在执行以下脚本以将动态值插入存储库:

az login
az acr build "ParentStorage" --platform windows -f Dockerfile -t ChildRepository:<dynamicValue>
Run Code Online (Sandbox Code Playgroud)

这里,ParentStorageStorage Account类型并且ChileRepositoryRepository类型。

首先,当执行登录命令时,它会向我提供可用订阅的列表。但执行az acr build...命令后,它抛出错误消息,如下所示:

错误

在订阅“Visual Studio Professional (ID)”中找不到名称为“ParentStorage”且类型为“Microsoft.ContainerRegistry/registries”的资源。

到目前为止我发现的是,它正在尝试在我的 Visual Studio 订阅 ( S1) 下进行搜索。S1默认订阅和存储库位于S2. 所以我设置S2为默认订阅并再次尝试,但没有成功

当我尝试执行以下命令时,它引发了相同的错误:

az acr show --name ParentStorage

PS:我尝试使用特定订阅登录,但无法这样做。

请让我知道我在这里缺少什么。

Cha*_* Xu 7

对于您的问题,您的注册表似乎不在当前订阅中。当您使用 CLI 命令时az login,您将使用默认订阅登录。对于您来说,“Visual Studio Professional (ID)”似乎是默认值。您应该检查您的注册表是否在当前订阅中。如果没有,您应该通过 CLI 命令将该订阅设置为当前订阅:

az account set --subscription subscription_id
Run Code Online (Sandbox Code Playgroud)

那么我建议你最好用CLI命令再次检查注册表是否存在:

az acr show -n acr_name
Run Code Online (Sandbox Code Playgroud)

它将显示您的注册表信息。这次,您可以az acr build根据需要使用 CLI 命令构建镜像。

--subscription另外,您还可以通过CLI命令在登录时使用参数设置订阅az login

如果您有更多问题,请告诉我。或者如果您认为它有帮助,您可以接受它作为答案。