背景&问题

我在docker-compose.yml的command参数后面加入了一行运行python脚本的命令:

command:python test.py

那么这条命令会在container生成的时候就开始运行。
但是通过docker logs -f 命令来查看日志时,我发现py脚本里通过print打印出来的东西并不会实时显示出来,而是程序执行完了才会显示出来,这并不是我想要的结果。
但如果进入container手动执行python脚本,就可以实时打印出来。

解决

在网上查找资料之后发现,在这种情况下,python会默认缓冲其输出,所以想要无缓冲输出,那么加一个“-u” 参数即可:

command: python -u test.py

这个时候再通过docker logs -f 来查看日志时,你就会看到实时打印出来的结果

问题解决!
Logo

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

更多推荐