CF приложения (ы) Python micoservices с общими локальными модулями python

#python #flask #cloud-foundry

#python #фляжка #cloud-foundry #flask

Вопрос:

Я пишу группу приложений CF microservices на python / flask. Всего 6 приложений. Все они используют несколько локальных модулей python.

Я не могу придумать достойный способ управления этими модулями таким образом, чтобы при каждом «cf push» приложения я получал включаемые текущие версии этих модулей.

Я могу, конечно, использовать оболочку для «cf push», чтобы скопировать модули в каталог ./local/. Однако это похоже на небольшой взлом.

Я не думаю, что это имеет значение, но все эти приложения и модули находятся в одном репозитории GitHub.

Быстрое обновление: в настоящее время я копирую каталоги модулей в каждый каталог непосредственно перед cf push, а затем очищаю эти копии. Это взлом, но мне нужно было запустить эти приложения. Я все равно хотел бы услышать от кого-нибудь, у кого есть лучший способ справиться с этим.

Комментарии:

1. Используете ли вы setuptools? Если вы можете, вы можете следовать этому процессу, чтобы «настроить» свои зависимости. pip install Пакет сборки Python будет включать библиотеки поставщиков, как и другие библиотеки. docs.cloudfoundry.org/buildpacks/python/index.html#vendoring . Однако библиотеки поставщиков не обязательно должны быть общедоступными, поскольку они добавляются вместе с вашим приложением.

2. Дэниел, это выглядит как победа. Спасибо!

Ответ №1:

Если ваша библиотека Python использует setuptools, то вы должны быть в состоянии pip install это сделать. Если вы можете pip install это сделать, вы можете следовать процессу Cloud Foundry для «поставщика» ваших зависимостей.

Пакет сборки Python будет включать все библиотеки поставщиков в приложение, как и другие библиотеки, загруженные из Интернета. Смотрите Документы для процесса создания библиотеки. Однако библиотеки вашего поставщика не обязательно должны быть общедоступными, поскольку они просто добавляются вместе с остальной частью вашего приложения.