使用--runtime命令设置Jenkins管道时在Powershell中出现问题

时间:2019-02-25 10:01:16

标签: azure powershell jenkins

我正在尝试使用Jenkins配置管道并将其部署到Azure。我在本教程的最后一步:

https://docs.microsoft.com/en-us/azure/jenkins/tutorial-jenkins-deploy-web-app-azure-app-service

最后一步如下,我必须在Azure CLI中输入它:

az group create --name yourWebAppAzureResourceGroupName --location region
az appservice plan create --name appServicePlanName --resource-group rgname --is-linux
az webapp create --name webAppName --resource-group rgName --plan appServicePlanName --runtime "java|1.8|Tomcat|8.5"

最后一条命令给我错误:

'1.8'不被识别为内部或外部命令, 可操作的程序或批处理文件。

因此,我认为也许没有在我的Azure VM(这是一台Linux计算机)上安装Tomcat。因此,我使用了下一个教程来安装Tomcat:

https://www.howtoforge.com/tutorial/how-to-install-apache-tomcat-8-5-on-ubuntu-16-04/

此后,我再次尝试执行--runtime命令,但仍然遇到相同的错误。我不知道该如何解决。我希望有人可以帮助我解决这个问题。

我尝试检查webapp列表运行时,并得到以下列表:

enter image description here

“ java | 1.8 | Tomcat | 8.5”在这里。我已经尝试了所有版本,但是没有用。

编辑:它可以在Azure Cloud Shell中运行,但是还有另一个错误:

Linux Runtime 'java|1.8|Tomcat|8.5' is not supported.Please invoke 'list-runtimes' to cross check

我已经尝试了所有运行时版本,但是仍然出现此错误。我也尝试过用双引号

2 个答案:

答案 0 :(得分:3)

我敢打赌,您已经解决了您的问题,但是如果其他人发现了这个问题,并且正在使用 PowerShell 运行 Azure CLI 命令。这就是对我有用的。

问题在于,当评估整行时,PowerShell如何解释'|'参数中的管道--runtime,字符。

按照代码块here中的建议,在命令的开头添加--%,以关闭PowerShell表达式的评估。

注意:这还将阻止PowerShell评估命令中的任何变量。您可以做的是将--runtime移动到行尾以解决此问题,例如像这样

az webapp create -g $rg -p $appPlanName -n $appName --deployment-local-git --% --runtime "DOTNETCORE|3.0"

答案 1 :(得分:0)

好的,我明白了,该列表适用于Windows webapp,而不适用于linux。适用于Linux:

az webapp list-runtimes --linux

可行的解决方案:

az webapp create --name yourWebAppName --resource-group yourWebAppAzureResourceGroupName --plan yourLinuxAppServicePlanName --runtime "TOMCAT|8.5-jre8"