Python app does not print anything when running detached in docker
Finally I found a solution to see Python output when running daemonized in Docker, thanks to @ahmetalpbalkan over at GitHub. Answering it here myself for further reference :
Using unbuffered output with
CMD ["python","-u","main.py"]
instead of
CMD ["python","main.py"]
solves the problem; you can see the output (both, stderr and stdout) via
docker logs myapp
now!
In my case, running Python with -u
didn't change anything. What did the trick, however, was to set PYTHONUNBUFFERED=1
as environment variable:
docker run --name=myapp -e PYTHONUNBUFFERED=1 -d myappimage
[Edit]: Updated PYTHONUNBUFFERED=0
to PYTHONUNBUFFERED=1
after Lars's comment. This doesn't change the behavior and adds clarity.