0

我想做的是在 DockerOperator 中运行一个 docker 映像。在容器内,我想为 .py 文件启动一个 python 交互式 shell 并在文件中运行一个方法。

这可能在一个运营商中实现吗?

4

1 回答 1

1

我不确定您所说的“交互式外壳”是什么意思-但我认为它只是简单地运行一个新的python解释器(而不是它是交互式的并且用户在飞行中提供一些代码-这将是相当困难的) .

是的。您可以将您的 python 文件放在您的 DAG 旁边,并将其排除在解析为 DAG vi .airflowignore 文件(使用正则表达式) - 您可以在此处阅读更多信息:https ://airflow.apache.org/docs/apache-airflow/stable/ modules_management.html

也可以使用您的 python 文件和添加的必要库来准备自定义图像。

以下是有关如何通过大量示例执行此操作的说明:https ://airflow.apache.org/docs/docker-stack/build.html

此外 - 这是最好和最新的方式 - 如果您使用 Airlfow 2.2+,您可以使用 @task.docker 运算符https://airflow.apache.org/docs/apache-airflow/stable/tutorial_taskflow_api.html#using -the-taskflow-api-with-docker-or-virtual-environments ,在这种情况下,您可以简单地使用@task.docker 装饰一个可调用的python,python 代码将使用您指定的docker 映像执行(使用 DockerOperator 下兜帽)

于 2022-01-02T12:22:46.173 回答