VSCode远程容器开发中的postCreateCommand不显示Azure Cli输出

问题描述

在构建VSCode远程开发容器时,我以bash脚本作为postCreateCommand运行。在此bash脚本中,命令为az login。问题是此命令没有输出,因此我无法登录Azure CLI。在终端中手动运行时,它可以工作。

devcontainer.json具有以下命令: "postCreateCommand": "bash .devcontainer/install.sh",

install.sh只有一行: az login

Azure CLI要求使用代码microsoft.com/devicelogin登录预期的输出

VSCode输出不显示任何Azure CLI输出。它仅表明install.sh脚本正在执行,并且一直等到az login命令给出超时错误并结束。

解决方法

CLI命令az login是一个交互式命令。如果要在没有输入的情况下在脚本中使用它,则需要将其更改为非交互式命令。我建议您使用服务主体来实现它:

az login --service-principal -u username -p password --tenant tenantId 

如果服务主体没有问题,此CLI命令将直接执行而无需输入,并给出输出。