问题

实验室新评测日志系统使用的是google的glog,然而上线之后发现使用docker logs输出的日志内容没有颜色显示,这对于运维查看问题很不方便,于是便着手解决。

解决

最开始以为是glog的原因,后来docker exec到容器内部执行一段测试代码之后,发现容器内部终端有颜色输出啊:
在这里插入图片描述
所以初步可以肯定不是glog的问题,而是docker的问题,于是,退出容器,在容器外部跑里面的测试代码,结果如下:
在这里插入图片描述
果然,没有了颜色,应该是由容器内输出到容器外时出的问题,经查询stackoverflow和谷歌等多方资料,得知是因为没有加-t参数导致的0.0,加上该参数之后,果然,颜色出来了:
在这里插入图片描述
而-t参数其实就是tty,开启了一个连接容器里边的terminal(终端),这样就能把容器内部终端的输出如实包括颜色输出出来,如果是docker-file的话,在docker run参数加上-t参数如果是docker-compose,在你的docker-compose里加上tty:true配置即可

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐