在分離的Docker 容器中執行Python (2.7) 應用程式(使用-d 標誌)時,使用者可能會遇到應用程式的print 語句不產生任何輸出的情況。
Python 預設使用緩衝輸出,這表示它在將輸出傳送到螢幕之前將其儲存在緩衝區中。在分離的容器中,此緩衝區可能無法足夠頻繁地刷新,從而導致缺少輸出。
要解決此問題,可以將無緩衝輸出與-u 一起使用flag:
CMD ["python", "-u", "main.py"]
這確保輸出立即寫入螢幕,無論緩衝如何設定。
使用無緩衝輸出,列印語句將在Docker 日誌中可見:
docker logs myapp > App started
當未使用-u標誌時,印在分離中的行為如下容器:
以上是為什麼我的分離 Docker 容器不顯示 Python 列印輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!