Структура проекта не так уж и сложна:
Код: Выделить всё
DaProject/
+- ServiceA/
| +- main.py
| \- Dockerfile
+- ServiceB/
| +- some_ServiceB_specific_lib/
| +- main.py
| \- Dockerfile
\- docker-compose.yml
Вопрос в том, существует ли простой, но достойный способ сделать это?
Например, если Я делаю так:
Код: Выделить всё
DaProject/
+- Chassis/
| \- __init__.py
+- ServiceA/
| +- main.py
| \- Dockerfile
+- ServiceB/
| +- some_ServiceB_specific_lib/
| +- main.py
| \- Dockerfile
\- docker-compose.yml
О чем я подумал:
- Я не могу просто ссылаться на ../Chassis в любом файле Dockerfile, поскольку он находится за пределами области сборки. Хорошо, это имеет смысл.
- Я не хочу вручную копировать шасси в каждый служебный каталог всякий раз, когда мне приходится его обновлять. Это очень простое решение, но требующее сложного обслуживания и подверженное ошибкам.
- Жесткая ссылка на каталог — это хак, который, скорее всего, сломается, если код будет перенесен в другое место.
- Реализация локального репозитория pypi кажется трудоемким способом справиться с этим. Возможно, было бы более целесообразно реализовать более абстрактную и многоразовую библиотеку, а не что-то настолько привязанное к проекту, как эта.
- Поиск в Google указал мне на концепцию «git submodule»... но У меня есть только базовые знания Git, поэтому я не могу судить, насколько сложно это решение.
Подробнее здесь: https://stackoverflow.com/questions/789 ... rn-in-pyth