`我正在尝试在 azure 容器应用程序中执行命令,但出现以下错误:
2024-01-31T20:47:13.9713698Z 线程 Thread-1 中出现异常(read_ssh): 2024-01-31T20:47:13.9718303Z 回溯(最近一次调用最后一次): 2024-01-31T20:47:13.9723276Z 文件“threading.py”,第 1038 行,位于 _bootstrap_inner 2024-01-31T20:47:13.9723860Z 文件“threading.py”,第 975 行,运行中
inlineScript:'az containerapp exec --name test --resource-group test-RG --command"/bin/shpostbuild.sh"'
注意:如果我尝试在本地 powershell 中执行,相同的 exec 命令将按预期工作
问题在于对容器执行命令。我想从 DevOps 管道中执行 Azure 容器中的命令`
这是“
az containerapp exec
”和“az container exec
”命令的已知问题/限制,因为它们是交互模式。因此,当在 Azure Pipelines 中以非交互模式运行时,这些命令无法工作。
请参阅以下文章:
正如上述文章中提到的解决方法,您可以尝试在 Ubuntu 代理上使用 Azure CLI 任务运行以下命令行(例如,
ubuntu-latest
)。我已经在管道中测试了这个命令行,它可以正常工作。
script -q -c 'az containerapp exec --name test --resource-group test-RG --command"/bin/shpostbuild.sh"'
在 Ubuntu 代理上将 AzureCLI@2 任务与
bash
(Shell)一起使用。
- task: AzureCLI@2
displayName: 'Azure CLI'
inputs:
azureSubscription: {ARM Service Connection}
scriptType: bash
scriptLocation: inlineScript
inlineScript: 'script -q -c ''az containerapp exec --name test --resource-group test-RG --command"/bin/shpostbuild.sh"'''
或者在 Ubuntu 代理上将 AzureCLI@2 任务与
pscore
(PowerShell Core) 结合使用。
- task: AzureCLI@2
displayName: 'Azure CLI'
inputs:
azureSubscription: {ARM Service Connection}
scriptType: pscore
scriptLocation: inlineScript
inlineScript: 'script -q -c ''az containerapp exec --name test --resource-group test-RG --command"/bin/shpostbuild.sh"'''