在Airflow内部的docker中运行python脚本

时间:2018-04-26 07:01:05

标签: python docker airflow

我有这个代码用于airflow在docker中执行python脚本:

a02_retrieve_2 = SSHExecuteOperator(
    task_id='a02_retrieve_2',
    ssh_hook=sshHook,
    dag=dag,
    bash_command= 'docker exec myDocker -i bash -c "  /opt/conda/bin/python aretrieve_2.py   --myarg  45  --myarg 35   "  '
)

不幸的是,它不起作用。

但是,没有参数的版本可以工作。

a02_retrieve_2 = SSHExecuteOperator(
    task_id='a02_retrieve_2',
    ssh_hook=sshHook,
    dag=dag,
    bash_command= 'docker exec myDocker -i bash -c "  /opt/conda/bin/python aretrieve_2.py  "  '
)

错误是:

Python script starts to run but Airflow is unable to catch up the python script parameters...

如何使用python脚本参数制作版本?

这与jinja模板有关吗? BashOperator doen't run bash file apache airflow

1 个答案:

答案 0 :(得分:0)

我通过查看bashoperator的源代码找到了答案: 这使用了popen

public

https://airflow.incubator.apache.org/_modules/bash_operator.html