【发布时间】:2019-06-25 08:46:34
【问题描述】:
我创建了一个 Azure DevOps 任务组来在 Azure(Azure 容器实例)上创建一个 selenium 容器,如下所示:
脚本:
ipAddress="$(az container create \
-g $(resourceGroup) \
--name temp-$(ContainerName) \
--image myregistry.azurecr.io/selenium/standalone-chrome \
--cpu 2 \
--memory 4 \
--os-type Linux \
--ports 4444 \
--vnet $(VNet)
--subnet $(Subnet)
--registry-username $(registryUsername) \
--registry-password $(registryPassword) \
--environment-variables \
NODE_MAX_SESSION=10 \
Browser=$(Browser) \
--query 'ipAddress.ip' -o tsv)"
echo "##vso[task.setvariable variable=$(SeleniumHubVariable);]http://$ipAddress:4444/wd/hub/"
此任务在 Linux 构建代理上运行时成功执行。
当我尝试在 Windows 构建代理上运行它时,任务不会失败,但不会创建容器。任务的输出如下:
F:\Agent03\w\125\s>ipAddress="$(az 容器创建\ 'ipAddress' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
F:\Agent03\w\125\s>-g 我的资源组\ '-g' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
F:\Agent03\w\125\s>--名称 temp-1807-build-385769 \ '--name' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
F:\Agent03\w\125\s>--image mycontainerregistry.azurecr.io/selenium/standalone-chrome \ '--image' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
F:\Agent03\w\125\s>--cpu 2\ '--cpu' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
F:\Agent03\w\125\s>--内存4\ '--memory' 未被识别为内部或外部命令, 可运行的程序或批处理文件。 '--os-type' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
F:\Agent03\w\125\s>--os-type Linux \
F:\Agent03\w\125\s>--端口 4444\ '--ports' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
F:\Agent03\w\125\s>--vnet .....\ '--vnet' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
F:\Agent03\w\125\s>--子网 ....\ '--subnet' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
F:\Agent03\w\125\s>--registry-username myregistryusername \ '--registry-username' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
F:\Agent03\w\125\s>--registry-password *** \ '--registry-password' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
F:\Agent03\w\125\s>--环境变量\ '--environment-variables' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
F:\Agent03\w\125\s>NODE_MAX_SESSION=10 \ 'NODE_MAX_SESSION' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
F:\Agent03\w\125\s>浏览器=$(浏览器)\ “浏览器”未被识别为内部或外部命令, 可运行的程序或批处理文件。
F:\Agent03\w\125\s>--query 'ipAddress.ip' -o tsv)" '--query' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
我错过了什么?如何让它同时适用于 Windows 和 Linux?
【问题讨论】:
-
Windows 与 Linux 不同,Azure CLI 更适合 Linux。您将命令更改为 PowerShell。或者您可以尝试将“\”更改为“`”,即反引号。
-
@CharlesXu 这可能会有所帮助,但不幸的是,这还不足以解决问题 - 我尝试删除所有反斜杠并将第一个命令放在一行中,但我仍然收到警告:
ipAddress is not recognized as an internal or external command, operable program or batch file -
是的,在 Windows 中。您应该使用该集合来创建一个变量,就像
set variable_name=value。它在 CMD 和 PowerShell 中有所不同。在 PowerShell 中,您可以创建像$variable_name=value这样的变量。你可以先试试PowerShell的方式。 -
@CharlesXu 我能够找到解决我的问题的方法,但无论如何感谢您的建议
标签: azure docker azure-devops azure-cli azure-container-instances