Я новичок в docker-compose и пытаюсь создать архитектуру, которая может использоваться несколькими проектами.Представьте, что мои 2 услуги - это поток воздуха и postgres.Я хотел бы иметь возможность контроля версий моей архитектуры отдельно от моих проектов.
Например, в настоящее время у меня есть проекты: project_architecture и project_individual .
- project_architecture включает всю мою информацию о докере, например, 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
Если вы посмотрите ближе, у меня есть папка докера в моем индивидуальном проекте, где я планировалразработать собственные группы обеспечения доступности баз данных и сценарии базы данных, которые будут использоваться в проектах Project_architecture Airflow и Postgres соответственно.Более того, я хотел бы вызывать определенные функции, методы, классы из моего проекта, например, на data / data.py .
В настоящее время, в моем файле docker-compose.yml, япытаясь смонтировать внешний DAG, как это (это не работает):
volumes:
- ${PWD}/../project_individual/docker/my_specific_dag.py:/usr/local/airflow/dags/my_specific_dag.py
Я должен думать, что описанная мной проблема была решена компаниями, использующими контейнерные решения с воздушным потоком.Я могу себе представить, что будет команда, управляющая центральным воздушным потоком, в то время как разработчики будут создавать свои проекты на собственной команде, отделенной от архитектуры.Я рад принять любой совет или рекомендацию.Моя конечная цель - убедиться, что мои 2 проекта не связаны, и я могу расширить проекты, которые могут использовать одну и ту же архитектуру (описано в project_architecture)