问题描述
在构建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命令将直接执行而无需输入,并给出输出。