Недавно я видел, как --no-cache-dir
они используются в файле Docker. Я никогда раньше не видел этот флаг, и помощь не объясняет его:
--no-cache-dir Disable the cache.
- Вопрос: что кешируется?
- Вопрос: Для чего используется кеш?
- Вопрос: Зачем мне его отключать?
pip no-cache-dir
это первый результат.Ответы:
.whl
и т. д.) модулей, которые вы устанавливаете через pip.tar.gz
и т. д.), чтобы избежать повторной загрузки, когда срок действия не истекpip install
с неожиданными настройкамиexport PYCURL_SSL_LIBRARY=nss
иpip install pycurl
export PYCURL_SSL_LIBRARY=openssl
иpip install pycurl --compile --no-cache-dir
Ссылки на документацию
https://pip.pypa.io/en/stable/reference/pip_install/#caching - @emredjan https://pip.pypa.io/en/stable/reference/pip_install/ - @mikea
источник
--no-cache-dir
, верно?Я думаю, что есть веская причина использовать это
--no-cache-dir
при создании образов Docker. Кеш обычно бесполезен в образе Docker, и вы определенно можете уменьшить размер образа, отключив кеш.источник
ENV PIP_NO_CACHE_DIR=1
в докере для изображений Python 3.6.10 и вышеЕще одна причина отключить кеш pip - если вы запустите pip от имени пользователя, который еще не существует, их домашний каталог будет создан, но принадлежит пользователю root.
Это происходит с нами при создании AMI Amazon в chroot - pip запускается от имени пользователя, который существует на машине компоновщика, но не в chroot jail, где создается AMI. Это проблематично, поскольку этот конкретный пользователь теперь не может использовать ssh для того, что только что было создано, поскольку их каталог .ssh не доступен для чтения.
Я не могу придумать другой причины, по которой pip будет запускаться от имени пользователя, которого не существует, так что это очень крайний случай.
источник
Уменьшите размер образа докера, если у вас есть зависимости Python в вашем DockerFile, поскольку ваши частные реестры / артефакты или службы развертывания могут иметь ограничение по размеру.
источник
Я получаю ошибку разрешения для установки некоторых пакетов pip, если я не использую
--no-cache-dir
опцию.chown /.cache
папка почему-то не помогла, но с--no-cache-dir
ней работает нормально.источник