我正在启动一个大型python项目,该项目将分解为多个组件,每个组件都将与不同的系统集成,并且我计划使用Celery和消息代理在每个组件之间传递任务。
>组成如下:
我计划使用docker-compose并将每个组件托管在其自己的容器中,并在需要时为RabbitMQ和celery-beat单独使用一个容器。
我想知道的是,在每个容器之间实际共享芹菜脚本的最佳方法是什么?
我应该将所有代码放置在所有容器上,而每个容器仅使用其所需的代码,还是只将必需的代码放置在每个容器上,并以某种方式在容器之间共享我的task.py和celery_config.py ?
在这种情况下,我也不确定如何管理版本控制,我应该在项目的根目录中使用一个.git还是为每个组件使用一个git repo?请记住,其中的两个组件非常庞大且复杂。
我的本能是将每个组件视为具有其自己的版本控制的单独项目...但是我不确定如何将它们与docker compose捆绑在一起并在它们之间共享我的芹菜任务。在这种情况下,有关最佳做法的任何想法将不胜感激。