我的powershell脚本中用于向Azure Container Registry进行身份验证的Docker登录命令在作为我在Azure DevOps中的CI/CD设置的一部分运行时出现了所需的身份验证错误,而完全相同的代码可以从我的本地powershell会话中完美地进行身份验证。为了确保值相同,我在脚本中对所有变量的值进行了硬编码:$registeryLoginServer、$SP_APP_ID、$SP_PASSWD。已检查本地powershell和构建过程中的docker版本(相同版本)。具有相同参数的相同代码如何能够在本地而不是在构建过程中成功进行身份验证?
"$SP_PASSWD" | docker login $registeryLoginServer -u "$SP_APP_ID" --password-stdin
遵循本页所述的服务原则进行身份验证。
尝试echo "$SP_PASSWD" | docker login $registeryLoginServer -u "$SP_APP_ID" --password-stdin
仅仅指定"$SP_PASSWD"不会将变量的值管道传输到stdin。
如果您在windows上,您可能需要使用set/p 禁用echo命令添加的换行符
echo | set /p="your_password" | docker login --username your_username --password-stdin