2014-12-04 2 views
11

Итак, у меня есть код Python, запущенный внутри контейнера Docker. Я запустил свой локальный env, используя скрипт gcloud Google. Я вижу основные журналы стиля доступа и информацию о проверке работоспособности, но я не уверен, как я могу проходить через сообщения журнала, которые я пишу из своего приложения Python на консоль. Есть ли параметр, который я могу установить для выполнения этого с помощью моего сценария gcloud или есть что-то, что я могу установить в файле Docker, который может помочь?Как отобразить вывод из приложения Python, запущенного внутри контейнера Docker?

+3

Вы можете [приложить] (https://docs.docker.com/reference/commandline/cli/#attach) себя к запущенному контейнеру, или вы можете использовать [журналы докеров] (https: //docs.docker. ком/ссылки/командная строка/кли/# журналы). Также вы можете прикрепить себя при запуске контейнера с помощью [docker run -a] (https://docs.docker.com/reference/commandline/cli/#run). Надеюсь, эта информация вам поможет. –

+1

поделитесь файлом 'Dockerfile', чтобы получить дополнительную поддержку. Где теперь находится журнал внутри контейнеров? обычно печатайте журналы на консоль (stdout/stderr) внутри контейнера, тогда вы можете использовать 'docker logs' снаружи. Вы всегда можете использовать команду 'docker exec' для перехода внутрь, чтобы проверять журналы, например, обычное приложение. –

+0

Спасибо за помощь ребятам. «докерные журналы» были тем, что я искал. Я думаю, что часть, которую я отсутствовала, заключалась в том, как получить идентификаторы процесса запуска docker (docker ps), поэтому я мог бы передать это команде logs. Если кто-то из вас может написать свой ответ, я буду отмечать его как правильно. – Brandon

ответ

17

Для Python, чтобы войти на свой терминал/командной строки/консоли, при выполнении из Докер контейнера, вы должны иметь этот набор переменных в вашем docker-compose.yml

environment: 
    - PYTHONUNBUFFERED=0 

Это также является допустимым решением, если вы используя print для отладки.

+3

Сделал мой день. Спасибо. –

+1

Glad может помочь :) – Sentient07

+0

Я использую docker-compose, и в одном из контейнеров работает Django. Несмотря на то, что печатаются сообщения из «mange.py runningerver» (все запросы GET и POST показывались), мои сообщения печати не отображались, пока я не добавлю эту переменную envirroment. Спасибо! – pitervergara

Смежные вопросы