J'ai récemment vu --no-cache-dir
être utilisé dans un fichier Docker. Je n'ai jamais vu ce drapeau auparavant et l'aide ne l'explique pas:
--no-cache-dir Disable the cache.
- Question: Qu'est-ce qui est mis en cache?
- Question: À quoi sert le cache?
- Question: Pourquoi voudrais-je le désactiver?
pip no-cache-dir
c'est maintenant le premier résultat.Réponses:
.whl
, etc.) des modules que vous installez via pip.tar.gz
, etc.) pour éviter de re-télécharger lorsqu'ils ne sont pas expiréspip install
avec des paramètres inattendusexport PYCURL_SSL_LIBRARY=nss
etpip install pycurl
export PYCURL_SSL_LIBRARY=openssl
etpip install pycurl --compile --no-cache-dir
Liens vers la documentation
https://pip.pypa.io/en/stable/reference/pip_install/#caching - @emredjan https://pip.pypa.io/en/stable/reference/pip_install/ - @mikea
la source
--no-cache-dir
, n'est-ce pas ?Je pense qu'il y a une bonne raison à utiliser
--no-cache-dir
lorsque vous créez des images Docker. Le cache est généralement inutile dans une image Docker, et vous pouvez certainement réduire la taille de l'image en désactivant le cache.la source
ENV PIP_NO_CACHE_DIR=1
dans le menu fixe pour python 3.6.10 et les images supérieuresUne autre raison de désactiver le cache pip - si vous exécutez pip en tant qu'utilisateur qui n'existe pas encore, leur répertoire personnel sera créé, mais possédé par root.
Cela nous arrive lorsque nous construisons des AMI Amazon dans un chroot - pip est exécuté en tant qu'utilisateur existant sur la machine de construction, mais pas dans la prison chroot où l'AMI est en cours de construction. Ceci est problématique car cet utilisateur spécifique ne peut maintenant pas ssh sur ce qui vient d'être construit car leur répertoire .ssh n'est pas lisible par eux.
Je ne peux penser à aucune autre raison pour laquelle pip serait exécuté en tant qu'utilisateur qui n'existe pas, donc c'est vraiment un cas limite.
la source
Réduisez la taille de votre image docker si vous avez des dépendances python dans votre DockerFile, car vos registres / artefacts privés ou vos services de déploiement peuvent avoir une limitation de taille.
la source
J'obtiens une erreur d'autorisation pour l'installation de certains packages pip si je n'utilise pas d'
--no-cache-dir
option.chown /.cache
dossier n'a pas aidé pour une raison quelconque, mais avec--no-cache-dir
cela fonctionne bien.la source