Kubernetes 日志未显示 python 打印方法的输出

我有一个 python 应用程序,我在其中使用print()向用户显示文本的方法。当我使用命令手动与此应用程序交互时,kubectl exec ...我可以看到打印的输出。

但是,当脚本在容器启动时使用CMD python3 /src/my_app.py(最后一个条目Dockerfile)自动执行时,打印就消失了(未显示在 中kubectl logs)。Ayn 建议如何解决它?


守着星空守着你
浏览 281回答 2
2回答

慕娘9325324

原来是python环境的问题。设置,这两个环境变量PYTHONUNBUFFERED=1并PYTHONIOENCODING=UTF-8解决了这个问题。

扬帆大鱼

这是因为 stdout 和 stderr 流在 Python 中被缓冲。您可以将环境变量设置为PYTHONUNBUFFERED=1或True你也可以-u在你的Dockerfile.-u强制 stdout 和 stderr 流无缓冲。此选项对标准输入流没有影响。在 3.7 版更改: stdout 和 stderr 流的文本层现在是无缓冲的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python