docker-compose build终端可见输出但日志文件为空,求解决方案
解决Docker Compose构建输出tee后日志为空的问题
问题根源在于Docker Compose的构建输出默认输出到标准错误流(stderr),而tee命令默认仅捕获标准输出流(stdout),因此直接管道时日志文件无法捕获内容,终端能看到输出是因为stderr默认会打印到终端。
直接使用以下命令即可解决:
docker-compose build --progress plain myenv 2>&1 | tee myenv.log
补充说明
2>&1的作用是将stderr(文件描述符2)的内容重定向到stdout(文件描述符1),这样tee就能同时捕获两种流的内容,既在终端实时显示,也写入日志文件。- 如果需要分开保存stdout和stderr的日志,可以使用:
docker-compose build --progress plain myenv > myenv.stdout.log 2> myenv.stderr.log
内容的提问来源于stack exchange,提问作者BerndGit
相关产品推荐
相关产品推荐

