在分离的 Docker 容器中运行 Python (2.7) 应用程序(使用 -d 标志)时,用户可能会遇到应用程序的 print 语句不产生任何输出的情况。
Python 默认使用缓冲输出,这意味着它在将输出发送到屏幕之前将其存储在缓冲区中。在分离的容器中,此缓冲区可能无法足够频繁地刷新,从而导致缺少输出。
要解决此问题,可以将无缓冲输出与 -u 一起使用flag:
CMD ["python", "-u", "main.py"]
这确保输出立即写入屏幕,无论缓冲如何设置。
使用无缓冲输出,打印语句将在 Docker 日志中可见:
docker logs myapp > App started
当未使用 -u 标志时,打印在分离中的行为如下容器:
以上是为什么我的分离 Docker 容器不显示 Python 打印输出?的详细内容。更多信息请关注PHP中文网其他相关文章!