Docker bash脚本等待容器日志包含“完成”[重复]

Posted

技术标签:

【中文标题】Docker bash脚本等待容器日志包含“完成”[重复]【英文标题】:Docker bash script wait for container log to contain "done" [duplicate] 【发布时间】:2020-08-27 06:04:22 【问题描述】:

我正在寻找一个 bash 脚本,该脚本在容器日志显示“[services.d] 完成”之前不会继续。

例子:

#!/bin/bash

while [ docker logs container | grep "[services.d] done." ] = "false";
do
    sleep 1
    echo "working..."
done

【问题讨论】:

【参考方案1】:

如果找不到字符串,Grep 将返回 false,因此请尝试:

#!/bin/bash

while ! docker logs container | grep -q "[services.d] done.";
do
    sleep 1
    echo "working..."
done

【讨论】:

谢谢你,我不得不稍微修改一下,但它工作了。 until docker ... | grep ...; done 看哇哇哇! :-) 如果您不介意丢失正在工作的...消息,这样的事情似乎更简单:docker logs -f container 2>&1 | grep -m 1 '[services.d] done.'

以上是关于Docker bash脚本等待容器日志包含“完成”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Alpine Docker 容器中运行 Bash 脚本?

如何避免Docker容器启动脚本运行后自动退出

Docker命令和容器名称的自动补齐

docker~写个容器启动的bash脚本

sh Nagios的Bash脚本检查Docker容器的状态

成功等待脚本后如何启动 docker 容器