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

时间:2016-10-11 14:18:18

标签: shell jenkins 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

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

工作完成后,我会停下来并移除所有容器,以便为新工作重新开始。

谢谢&问候, 维克拉姆

1 个答案:

答案 0 :(得分:1)

您可以使用 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

此致