使用 docker compose logs -f | grep 命令时遇到了 grep: (standard input): binary file matches 错误。
这个错误通常发生在 grep 尝试搜索包含二进制内容的文件时。docker compose logs 命令会输出容器的日志,而这些日志可能包含二进制数据,导致 grep 无法正确处理。
为了解决这个问题,你可以尝试使用 --text 选项来告诉 grep 将输入视为文本文件。你可以使用如下命令:
docker compose logs -f --no-color | grep --text "pattern"
这里的 --no-color 选项用于禁用日志输出中的颜色代码,以避免干扰 grep 命令。–text 选项则告诉 grep 将输入视为文本进行匹配。
通过在 grep 命令中使用这些选项,你应该能够避免出现二进制文件匹配的错误,并正确过滤容器日志中的文本内容。