簡體   English   中英

在Airflow的docker內部運行python腳本

[英]Run python script inside docker inside 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腳本參數的版本有效?

這和神社模板有關嗎? BashOperator不運行bash文件apache氣流

我通過查看bashoperator的源代碼找到了答案:這使用popen

            self.log.info("Running command: %s", bash_command)
            sp = Popen(
                ['bash', fname],
                stdout=PIPE, stderr=STDOUT,
                cwd=tmp_dir, env=self.env,
                preexec_fn=pre_exec)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM