我有一個 python 應(yīng)用程序,我在其中使用print()向用戶顯示文本的方法。當(dāng)我使用命令手動與此應(yīng)用程序交互時,kubectl exec ...我可以看到打印的輸出。但是,當(dāng)腳本在容器啟動時使用CMD python3 /src/my_app.py(最后一個條目Dockerfile)自動執(zhí)行時,打印就消失了(未顯示在 中kubectl logs)。Ayn 建議如何解決它?
2 回答

慕娘9325324
TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個贊
原來是python環(huán)境的問題。設(shè)置,這兩個環(huán)境變量PYTHONUNBUFFERED=1
并PYTHONIOENCODING=UTF-8
解決了這個問題。

揚(yáng)帆大魚
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個贊
這是因?yàn)?stdout 和 stderr 流在 Python 中被緩沖。
您可以將環(huán)境變量設(shè)置為PYTHONUNBUFFERED=1
或True
你也可以-u
在你的Dockerfile
.
強(qiáng)制 stdout 和 stderr 流無緩沖。此選項(xiàng)對標(biāo)準(zhǔn)輸入流沒有影響。
在 3.7 版更改: stdout 和 stderr 流的文本層現(xiàn)在是無緩沖的。
添加回答
舉報
0/150
提交
取消