相关疑难解决方法(0)

使用DockerOperator时如何同时使用xcom_push=True和auto_remove=True?

问题

当使用DockerOperator, xcom_push=Trueandxcom_all=True运行时auto_remove=True,任务会引发错误,就好像容器在读取其 之前被删除一样STDOUT

例子

以以下 DAG 为例:

from datetime import datetime, timedelta

from airflow import DAG
from airflow.operators.docker_operator import DockerOperator
from airflow.operators.python_operator import PythonOperator


# Default (but overridable) arguments for Operators instantiations
default_args = {
    'owner': 'Satan',
    'depends_on_past': False,
    'start_date': datetime(2019, 11, 28),
    'retry_delay': timedelta(seconds=2),
}


# DAG definition


def createDockerOperatorTask(xcom_all, auto_remove, id_suffix):
    return DockerOperator(
        # Default args
        task_id="docker_operator" + id_suffix,
        image='centos:latest',
        container_name="container" + id_suffix,
        api_version='auto',
        command="echo 'FALSE';",
        docker_url="unix://var/run/docker.sock",
        network_mode="bridge", …
Run Code Online (Sandbox Code Playgroud)

python airflow

3
推荐指数
1
解决办法
3014
查看次数

标签 统计

airflow ×1

python ×1