根据github自述文件(https://github.com/SeleniumHQ/docker-selenium),chrome独立版需要选项“ -v / dev / shm:/ dev / shm”,但我正努力在文档中找到如何正确执行此操作。 / p>
完整的docker run命令如下:
docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome:3.12.0-cobalt
之所以需要这样做,是因为我的测试由于未启用此选项而特别失败。
当前我的azure命令如下:
az container create --resource-group ${resourceGroup} --name ${containerName} --image selenium/standalone-chrome:3.12.0-cobalt --dns-name-label ${dnsNameLabel} --ports 4444
我一直在尝试使用--azure-file-volume选项,但没有成功。任何帮助将不胜感激。
编辑:
在弄清楚这一点之前,我决定使用Azure vms。使用已安装docker的vm映像并启动docker-selenium容器。它编写脚本的速度或快度并没有那么快,但是可以完成工作,而不会出现启动Docker容器的选项问题。对于任何决定走这条路的人,这里是我的虚拟机云初始化代码。
#cloud-config
package_upgrade: true
package_reboot_if_required: true
runcmd:
- apt-get update
- curl -fsSL https://get.docker.com/ | sh
- curl -fsSL https://get.docker.com/gpg | sudo apt-key add -
- sudo docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome:3.12.0-cobalt
答案 0 :(得分:2)
虽然无法使用Azure CLI进行此操作,但是可以使用Azure资源管理器模板部署。
创建部署模板文件,例如:
selenium-aci-standalone-example.json
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"dnsNameLabel": {
"type": "String"
}
},
"resources": [
{
"apiVersion": "2018-06-01",
"location": "[resourceGroup().location]",
"name": "[parameters('dnsNameLabel')]",
"properties": {
"containers": [
{
"name": "standalone-chrome",
"properties": {
"image": "selenium/standalone-chrome",
"ports": [{ "port": "4444", "protocol": "TCP" }],
"resources": { "requests": { "cpu": "1.0", "memoryInGb": "1.5" } },
"volumeMounts": [{"name": "devshm", "mountPath": "/dev/shm"}]
}
}
],
"ipAddress": {
"ports": [{ "port": "4444", "protocol": "TCP" }],
"type": "Public",
"dnsNameLabel": "[parameters('dnsNameLabel')]"
},
"osType": "Linux",
"volumes": [
{
"name": "devshm",
"emptyDir": {}
}
]
},
"type": "Microsoft.ContainerInstance/containerGroups"
}
]
}
然后,您可以使用Azure CLI执行部署:
az group create -n selenium-standalone-rg -l westus2
az group deployment create -g selenium-standalone-rg --template-file .\selenium-aci-standalone-example.json --parameters dnsNameLabel=test-standalone-selenium-chrome
在节点容器上安装emptyDir
到/dev/shm
,对于我们运行带有Azure容器实例的Selenium Grid可以解决此问题。似乎不可能直接控制卷的大小-并且我在ACI文档中找不到有关emptyDir卷的大小的信息-但是添加卷后,所有折断的管道错误在我们的测试运行中都消失了配置到我们的ARM模板。