Как передать стандартный вывод из docker -run в dockerpy - PullRequest
4 голосов
/ 06 марта 2020

Когда я запускаю свое docker изображение, как обычно,

docker run -v ..... {DOCKER_IMAGE}

Я получаю свой логин в терминале, как и ожидалось. Но работает так:

docker_client = docker.from_env()
container  = docker_client.containers.run(DOCKER_IMAGE, None, environment=[f'foo={self.profile}'], 
volumes={...,}, auto_remove=True, stderr=True, stdout=True)
# No logs show up

Кажется, чтобы подавить журналы. Как я могу получить вывод журнала во время его работы? Могу ли я передать поток выполнения docker контейнера?

Я могу сделать это

docker_client.containers.run(.... detach=True)
for line in container.logs(stream=True): 
    print(line)

Но при этом теряется, отладка ли это / информация / предупреждение / ошибка

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

А как насчет настройки stream=True?

Не проверял, но в документах написано:

stream (bool) - Если true и detach false, вернуть строку журнала вместо строки. Игнорируется, если отсоединение верно. По умолчанию: False.

Пожалуйста, попробуйте и скажите, как все прошло.

Обновление: после поиска в Google для "потока" я нашел похожий вопрос, который может помочь вам здесь

0 голосов
/ 06 марта 2020
docker logs -f <CONTAINER>

Смотрите эту страницу: https://success.docker.com/article/view-realtime-container-logging

...