我正在尝试使用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列表运行时,并得到以下列表:
“ 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
我已经尝试了所有运行时版本,但是仍然出现此错误。我也尝试过用双引号
答案 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"