背景
在Docker 容器中執行Python 腳本時,輸出行為可能會有所不同,取決於容器是以互動方式運作還是以分離方式執行
問題
在分離模式(-d標誌)下,Python 腳本可能不會列印任何輸出,即使容器看起來正常運作。此問題影響在 Dockerfile 中使用 CMD ["python", "main.py"] 啟動的 Python(版本 2.7)應用程式。
原因
問題源自於Python 的預設緩衝輸出行為。當分離運行時,容器的輸出緩衝區不會自動刷新,因此它們會累積直到達到某個閾值。這會導致分離期間缺少可見輸出。
解
要解決此問題,請使用無緩衝輸出(-u 標誌):
CMD ["python", "-u", "main.py"]
這會強制stdout 和stderr不被緩衝,從而允許輸出立即以分離的方式顯示
說明
透過啟用無緩衝輸出,可以在分離執行期間即時查看容器的輸出。
以上是為什麼我的 Dockerized Python 應用程式在分離運行時不顯示任何輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!