以分離模式(-d 標誌)在Docker 容器中執行Python 應用程式時,您可能會遇到問題應用程式的輸出不是可見。
Python 的「print」函數使用緩衝輸出,這表示輸出不會立即刷新到 stdout 流。在分離模式下執行時,容器程序在主腳本 (main.py) 完成循環後退出。由於 stdout 緩衝區尚未刷新,因此輸出遺失。
要解決此問題,請使用 - 啟用無緩衝輸出u 標記為 Dockerfile 的 CMD 中的 Python命令指令:
CMD ["python", "-u", "main.py"]
使用無緩衝輸出,應用程式的輸出將立即寫入標準輸出,即使在分離模式下使用 docker 日誌時也可見:
$ docker run --name=myapp -d myappimage > b82db1120fee5f92c80000f30f6bdc84e068bafa32738ab7adb47e641b19b4d1 $ docker logs myapp > App started > [loop output]
以上是為什麼我的 Python 應用程式在分離的 Docker 容器中運行時不列印任何內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!