我们有一个执行Java代码的提取作业,我们将其封装在Dockerfile中以保持主机清洁。
现在我们正在考虑引入Airflow来自动执行此任务和其他任务。我们的任务在不同的机器上运行,并且应该是可扩展的,因此我们希望执行docker容器内的所有内容。我们对队列使用RabbitMQ
,为元数据库使用MySQL
。
直觉上,我认为安装一个专用于处理CeleryExecutor
部分的最小Airflow python包就足够了,但似乎任何Airflow实例都必须保持与数据库的连接,所以看来,最后,我将不得不使用与Airflow服务器/调度程序类似的(Docker)环境。
现在我想知道是否必须为我想要管理的每个作业继承基本Airflow图像?在我们的情况下,这意味着,我必须通过在继承的Airflow环境之上安装Java部件来使其变得有点混乱。
我是否真的必须编写自定义Dockerfile部件以包含Java或其他我通常只从专用Docker图像继承的环境,或者还有其他选项我还没看到?
在我看来,在docker中启动docker不是一个选项。