有没有办法用 Docker 部署 Airflow 但使用不同的工作人员?

Is there a way to deploy Airflow with Docker but using different workers?

我有一个使用 docker-compose 的 Airflow 部署,如官方 Airflow 文档 (here) 中所述。

我在问自己是否可以创建一个允许不同 python 环境执行不同任务的设置。 IE。假设我有一个项目 1 的管道,它与项目 2 的 DAG 有冲突的依赖关系。

有没有办法只创建两个不同的 worker 镜像,并以某种方式告诉 Airflow 相应的任务应该发送到哪个 worker 容器?

谢谢!

我不会使用特定于工作流程的 Airflow 图片,因为该方法无法扩展。也就是说,例如,如果您有十个工作流,每个工作流都带有自定义 Airflow-worker 图像,并且您决定升级 Airflow,则必须升级每个自定义图像。

为了处理 Python 环境中的依赖冲突,有 virtual environments. Airflow has PythonVirtualenvOperator 允许在新的 Python 虚拟环境中执行 Python 可调用对象,该环境完全包含可调用对象的依赖关系需要。这样,在同一个工作流 (DAG) 中,您可以拥有多个任务,每个任务具有完全不同的依赖集。