我是docker合成的新手,我正在尝试创建一个可以被多个项目利用的架构。想象一下我的两个服务是airlow和postgres。我希望能够将我的体系结构从项目中分离出来进行版本控制。
例如,目前我有一些项目:
项目建筑
和
个人项目
-
项目架构包括我的所有docker信息,如docker-compose.yml
-
project_individual是一个python项目,我有获取数据和转换数据的函数
project_architecture:
ââ README.md
âââ config
â  âââ airflow_container.env
â  âââ postgres.env
âââ docker-compose.yml
âââ services
â  âââ postgres
â  âââ 00_create_user.sh
âââ shared
âââ airflow_requirements.txt
âââ dags
â  âââ example_dag.py
project_individual:
âââ __init__.py
âââ data
â  âââ __init__.py
â  âââ data.py
âââ docker
â  âââ create_main_tables.sql
â  âââ my_specific_dag.py
âââ func
â  âââ __init__.py
| Â Â âââ functions.py
如果你仔细看,我有一个docker文件夹在我的个人_项目,我计划开发自己的dag和数据库脚本,将分别用于项目_架构气流和Postgres。此外,我想从我的项目中调用特定的函数、方法、类
数据/数据.py
.
目前,在我的docker-compose.yml文件中,我正试图安装这样的外部DAG(这不起作用):
volumes:
- ${PWD}/../project_individual/docker/my_specific_dag.py:/usr/local/airflow/dags/my_specific_dag.py
我认为我所描述的问题已经被公司用带有气流的容器解决方案解决了。我可以想象,当开发人员在自己的团队中生成与体系结构分离的项目时,会有一个团队管理中心气流。我很乐意接受任何建议。我的最终目标是确保我的两个项目没有耦合,并且我可以扩展可以重用相同架构的项目(在project_architecture中描述)