Рубрики
Без рубрики

Использование Pip-Tools для местного развития с Docker

Управление зависимостями Python может быть сложно для местного развития докера. Простой пакет PIP-Tools помогает с ним много. Помечено с Python, Docker, PiP, начинающими.

Docker – отличный инструмент даже для местного развития. В то же время управление требованиями Python в контейнерах может быть сложно. Красивое стандартное поведение – использовать требования .txt Файл, который добавляет к изображению во время процесса здания. Обычно мы используем что-то подобное в Dockerfile :

...
COPY ./requirements /requirements.txt
RUN pip install -U pip && pip install --no-cache-dir  -r /requirements.txt && rm -rf /requirements.txt
...

Эти инструкции работают нормально для развертывания производства, но не очень полезно для этапа разработки. Периодически необходимо установить новую библиотеку. С использованием виртуальной среды, без Docker, мы могли бы использовать PIP Установить ... а потом PIP Freeze> требования .txt Для хранения информации установленные библиотеки в файл. Но с Docker это не так, потому что нам нужно установить библиотеки на этапе сборки. В то же время трудно изменить требования .txt вручную без нарушения зависимостей.

Есть доступны менеджеры зависимостей Python, такие как Пипнв или Поэзия Отказ Но я предпочитаю использовать Pip-Tools Потому что это более просто. Мы можем добавить его на изображение контейнера, улучшая следующую строку:

RUN pip install -U pip pip-tools && pip install --no-cache-dir  -r /requirements.txt && rm -rf /requirements.txt

Корпус использования инструмента прост. Прежде всего, мы готовим файл с именем Требования. В Это будет содержать список зависимостей. Каждая строка в этом файле является зависимостью. Мы также можем использовать одни и те же правила для управления версиями, как обычный PIP Установить команда. Например:

django==3.1.*
celery
pillow

Теперь мы можем использовать команду требования к компиляции PIP.in Для генерации требования .txt со всеми необходимыми зависимостями. С Pip-Tools Установлен в контейнере, мы можем использовать команду так:

docker run -rm ... pip-compile requirements.in

Теперь файл требования .txt Будут сгенерированы, включая все необходимые зависимости описанных библиотек. Итак, можно восстановить контейнер для установки новых библиотек.

Вы можете проверить Pip-Tools Документация Для доступных команд и вариантов. Например, как обновить определенную библиотеку. Это довольно простой, но мощный инструмент.

Оригинал: “https://dev.to/korkholeh/using-pip-tools-for-local-development-with-docker-4n35”