Запретить Docker устанавливать требования к пакетам python для каждой сборки (без require.txt) - PullRequest
0 голосов
/ 08 февраля 2019

Я создаю образ из Dockerfile, где моей основной программой является приложение на python, которое имеет ряд зависимостей.Приложение устанавливается через setup.py, а зависимости перечислены внутри.Там нет requirements.txt.Мне интересно, есть ли способ избежать загрузки и сборки всех зависимостей приложения, которые редко меняются, при каждой сборке образа.Я видел несколько решений, в которых используется файл requirements.txt, но я бы хотел, чтобы его не было, если это возможно.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Одно из решений: если эти зависимости редко меняются, как вы сказали, вы можете создать другой образ с уже установленными пакетами.Вы должны создать это изображение и затем сохранить его, используя docker save, так что вы получите новое базовое изображение с необходимыми зависимостями.docker save создаст .tar с изображением.Вы должны загрузить изображение, используя docker load, а затем в своем Dockerfile вы должны сделать:

FROM <new image with all the dependencies>
//your stuff and no need to run pip install
....

Надеюсь, это поможет

Docker сохранить описание

0 голосов
/ 08 февраля 2019

Вы можете использовать requires.txt из информации о яйце для предварительной установки требований.

WORKDIR path/to/setup/script
RUN python setup.py egg_info
RUN pip install -r pkgname.egg-info/requires.txt
...