在专用的Docker环境中使用分布式Airflow工作者

我们有一个执行Java代码的提取作业,我们封装在Dockerfile中以保持主机清洁。

现在我们正在考虑引入Airflow来实现这个和其他任务的自动化。 我们的任务运行在不同的机器上,并且应该是可扩展的,所以我们想在docker容器中执行所有的东西。 我们使用RabbitMQ作为队列, MySQL使用元数据库。

直觉上,我认为安装一个专用于处理CeleryExecutor部件的最小Airflow python包就足够了,但是似乎任何Airflow实例都必须与数据库保持连接,所以看起来最终我不得不使用与Airflow服务器/调度程序相似的(Docker)环境。

现在我想知道是否需要inheritance我想要pipe理的每一项工作的基本Airflow图像? 在我们的情况下,这意味着,我必须通过在inheritance的Airflow环境之上安装Java部件来得到一些混乱。

我是否真的必须编写自定义的Dockerfile部件来包含Java或其他我通常只从一个专用Docker镜像inheritance的环境,或者还有另一个我没有看到的选项?

在我看来,在docker内部启动docker不是一种select。