如何在 docker 运算符中 运行 python 交互式 shell?

How to run a python interactive shell in an docker operator?

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

一个操作员可以做到吗?

我不确定您所说的“交互式 shell”是什么意思 - 但我认为它只是 运行 一个新的 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 在这种情况下,您可以简单地装饰一个 python 可使用 @task.docker 调用,python 代码将使用您指定的 docker 图像执行(在后台使用 DockerOperator)