Jenkins shell命令等待docker容器下载完成,运行

我正在使用下面的Docker步骤来调出selenium网格

我的查询是如何正常等待,直到特定的容器下载,启动和运行。

docker run -ti -m 150M --memory-swap 300M --cpu-shares=104 -d -p 4444:4444 --name selenium-hub -e GRID_BROWSER_TIMEOUT=15000 selenium/hub sleep 10 for i in {1..2} do echo "Starting Node: $i" docker run -ti -m 750M --memory-swap 900M --cpu-shares=460 -d --link selenium-hub:hub -v /dev/shm:/dev/shm selenium/node-chrome sleep 5 done 

有没有更好的方法来避免睡眠,因为有时容器下载需要更长的时间。

工作完成后,我停下来取下所有的容器,以便为新工作做好新的开始。

感谢和问候,Vikram

您可以使用curl调用selenium服务并检查结果:

然后在一段时间检查COUNT值,如果它不是零

 COUNT=$(curl -q localhost:4444 | grep 403 | wc -l) while [ $COUNT -eq 0 ] do sleep 1 COUNT=$(curl -q localhost:4444 | grep 403 | wc -l) done 

问候