[英]Docker-compose flask app not printing output from 'print'
我有一个 Flask 应用程序,它有一条路线,没有什么复杂的事情,在 docker 容器中运行。 我一生都无法在日志中显示打印语句( docker-compose logs -f <containername>
)。 到目前为止,我已经尝试了各种据说已经为其他人解决了这个问题的答案,包括:
print("test", flush=True)
PYTHONUNBUFFERED=1
并使用echo
验证它是在实际容器中设置的PYTHONUNBUFFERED=0
-u
标志运行 python到目前为止,一切都没有奏效。 Flask 应用程序启动得非常好,但没有显示我的打印语句的输出。 我通过添加随机语法错误和观察应用程序块本身来检查我是否正在编辑正确的文件。 我正在使用 python 3.8 和 docker-compose 2
尝试这个:
import sys
print('It is working',file=sys.stderr)
您可以使用 docker-compose 或 docker 查看日志
使用 docker-compose 你必须看到 SERVICE
Note: you add containername but you have to add service name
NOT $ docker-compose logs -f <containername>
USE $ docker-compose logs -f <SERVICE_NAME>)
使用 docker,您必须添加容器名称或容器 ID
docker logs -f CONTAINER_ID | CONTAINER_NAME
我在寻找类似问题的答案时发现了这个问题。 我在容器的 conda 环境中运行了一个烧瓶应用程序,即使烧瓶应用程序本身工作正常,也没有得到任何日志输出。 我将以下几行添加到我的 Dockerfile 中,并按预期开始记录 -
环境 PYTHONUNBUFFERED=1
运行 echo "source activate my_env" > ~/.bashrc
环境路径 /opt/conda/envs/my_env/bin:$PATH
CMD ["python", "api.py"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.