我想要制作一个简单的bash脚本,它使用-d运行一个坞容器,然后在容器已经运行完它的CMD的情况下执行其他的操作。我如何做到这一点,同时避免时间问题,因为码头容器可能需要一段时间来完成启动?
我唯一的想法是容器的Dockerfile在完成时需要在容器本身上创建某种状态,然后bash脚本可以轮询,直到状态文件存在为止。有更好的/标准的方法来做这样的事情吗?
本质上,我需要一种方法,使运行带有-d的码头容器的主机能够判断何时准备就绪。
更新
使它与跟踪日志方法一起工作,但似乎有点麻烦:
docker run -d \
--name sauceconnect \
sauceconnect
# Tail logs until 'Sauce Connect is up'
docker logs -f sauceconnect | while read LINE
do
echo "$LINE"
if [[ "$LINE" == *"Sauce Connect is up"* ]]; then
pkill -P $$ docker
fi
done发布于 2015-09-10 01:13:05
您应该可以通过docker logs -f <containter_name_or_ID>检查日志。
-f : same as tail -f 例如,完成了CMD,并将日志导出为JOB ABC is successfully started。
您的脚本可以在得到它之后检测并运行其余的作业。
https://stackoverflow.com/questions/32491000
复制相似问题