Docker-compose Flask 应用程序不打印“print”的输出

roc*_*ks6 6 python flask docker

我有一个 Flask 应用程序,它只有一条路线,没有任何复杂的事情发生,在 Docker 容器中运行。我一生都无法让打印语句显示在日志中 ( docker-compose logs -f <containername>)。到目前为止,我已经尝试了各种答案,据说已经为其他人解决了这个问题,包括:

  1. 呼唤print("test", flush=True)
  2. 设置PYTHONUNBUFFERED=1并验证它是否设置在实际容器中echo
  3. 环境PYTHONUNBUFFERED=0
  4. 使用-u标志运行 python
  5. 使用日志记录模块(logger.warning、logger.info 等)

到目前为止还没有任何效果。Flask 应用程序启动得非常好,但没有显示我的打印语句的输出。我通过添加随机语法错误并观察应用程序砖块本身来检查是否正在编辑正确的文件。我正在使用 python 3.8 和 docker-compose 2

mee*_*mee 2

尝试这个:

import sys
print('It is working',file=sys.stderr)
Run Code Online (Sandbox Code Playgroud)