Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the use of PYTHONUNBUFFERED in docker file?

Setting PYTHONUNBUFFERED to a non empty value ensures that the python output is sent straight to terminal (e.g. your container log) without being first buffered and that you can see the output of your application (e.g. django logs) in real time.

This also ensures that no partial output is held in a buffer somewhere and never written in case the python application crashes.

References:

  • https://docs.python.org/3/using/cmdline.html#envvar-PYTHONUNBUFFERED
  • https://alphacoder.xyz/dockerizing-django/
  • https://towardsdatascience.com/how-to-contain-your-first-django-in-docker-and-access-it-from-aws-fdb0081bdf1d

PYTHONUNBUFFERED non empty value force the stdout and stderr streams to be unbuffered. This option has no effect on the stdin stream