问题
实验室新评测日志系统使用的是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配置即可