Как получить логи изнутри контейнера, выполненного с помощью DockerOperator? (Airflow) - PullRequest
0 голосов
/ 01 мая 2020

У меня проблемы с ведением журнала в DockerOperator.

Я запускаю скрипт python внутри контейнера docker, используя DockerOperator, и мне нужен поток воздуха, чтобы выплевывать логи из скрипта python, работающего внутри контейнера. Airlfow отмечает работу как успешную, но сценарий внутри контейнера терпит неудачу, и я понятия не имею, что происходит, потому что я не могу видеть журналы должным образом. Есть ли способ настроить ведение журнала для DockerOpertor, кроме настройки опции tty на True, как это предлагается в docs

1 Ответ

1 голос
/ 02 мая 2020

Похоже, вы можете отправить журналы на XComs , но по умолчанию они отключены. Во-первых, вам нужно передать xcom_push=True, чтобы он хотя бы начал посылать последнюю строку вывода в XCom. Кроме того, вы можете передать xcom_all=True для отправки всего вывода в XCom, а не только в первую строку.

Возможно, это не самое удобное место для размещения отладочной информации, но оно довольно доступно в пользовательском интерфейсе, по крайней мере, либо в вкладка XCom, когда вы нажимаете на задачу или есть страница, которую вы можете перечислить и отфильтровать XComs (в разделе «Обзор»).

Источник: https://github.com/apache/airflow/blob/1.10.10/airflow/operators/docker_operator.py#L112 -L117 и https://github.com/apache/airflow/blob/1.10.10/airflow/operators/docker_operator.py#L248 -L250

...