Докерский контейнер Python использует print () - PullRequest
2 голосов
/ 16 марта 2019

Здравствуйте, я хотел бы использовать

print('Hello world')

чтобы увидеть, что происходит с некоторыми переменными, однако я использую Docker, что означает, что по умолчанию он ничего не печатает. Может кто-нибудь сказать мне, как я могу передать эти команды печати в Docker-контейнер?

Ответы [ 2 ]

5 голосов
/ 16 марта 2019

Это потому, что Python буферизует свой вывод по умолчанию.

Простой способ изменить это поведение - использовать переменную окружения PYTHONUNBUFFERED=1 : docker run -e PYTHONUNBUFFERED=1 <your_image>

Другой способ - вызвать команду python с параметром -u .

0 голосов
/ 16 марта 2019

Возможно, вам следует запустить свой контейнер с привилегированной опцией share / dev (поэтому, делитесь /dev/stdout).

Это работает для меня:

print.py:

print("Hello world")

Dockerfile:

FROM python
ADD print.py /
ENTRYPOINT ["python",  "/print.py"]

Команды:

$ docker build -t python-test .
$ docker run -it --privileged python-test
Hello world

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...