【问题标题】:Jenkins shell command wait for docker container downloaded , up , runningJenkins shell 命令等待 docker 容器下载、启动、运行
【发布时间】:2016-10-11 14:18:17
【问题描述】:

我正在使用以下 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

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

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

感谢和问候, 维克拉姆

【问题讨论】:

  • 在两行之间使用&&docker run ... && docker run ...

标签: shell jenkins docker


【解决方案1】:

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

然后在 while 中检查 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

问候

【讨论】:

  • 抱歉我不明白 grep 403 ?每个节点容器都有唯一的端口,那么 403 有什么关系呢?
  • 当您通过 localhost:4444 在像 selenium/standalone-firefox 这样的独立容器的情况下调用网格时,它会返回“Error 403 Forbidden for Proxy”,因此您可以检查它。您也可以调用localhost:4444/grid/console 并在html 中使用grep 检查注册了多少节点
猜你喜欢
  • 2014-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 2019-05-21
  • 1970-01-01
相关资源
最近更新 更多