【问题标题】:Docker bash script wait for container log to contain "done" [duplicate]Docker bash脚本等待容器日志包含“完成”[重复]
【发布时间】: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

【问题讨论】:

    标签: bash docker


    【解决方案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.'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多