Ich habe kürzlich gesehen, --no-cache-dir
dass es in einer Docker-Datei verwendet wird. Ich habe diese Flagge noch nie gesehen und die Hilfe erklärt sie nicht:
--no-cache-dir Disable the cache.
- Frage: Was wird zwischengespeichert?
- Frage: Wofür wird der Cache verwendet?
- Frage: Warum sollte ich es deaktivieren wollen?
pip no-cache-dir
dies jetzt das erste Ergebnis.Antworten:
.whl
usw.) der Module, die Sie über pip installieren.tar.gz
usw.), um ein erneutes Herunterladen zu vermeiden, wenn sie nicht abgelaufen sindpip install
mit unerwarteten Einstellungen ausgeführtexport PYCURL_SSL_LIBRARY=nss
undpip install pycurl
export PYCURL_SSL_LIBRARY=openssl
undpip install pycurl --compile --no-cache-dir
Links zur Dokumentation
https://pip.pypa.io/en/stable/reference/pip_install/#caching - @emredjan https://pip.pypa.io/en/stable/reference/pip_install/ - @mikea
quelle
--no-cache-dir
, richtig?Ich denke, es gibt einen guten Grund,
--no-cache-dir
wenn Sie Docker-Images erstellen. Der Cache ist in einem Docker-Image normalerweise unbrauchbar, und Sie können die Bildgröße definitiv verkleinern, indem Sie den Cache deaktivieren.quelle
ENV PIP_NO_CACHE_DIR=1
in Docker für Python 3.6.10 und höher Bilder verwendenEin weiterer Grund, den Pip-Cache zu deaktivieren: Wenn Sie pip als Benutzer ausführen, der noch nicht vorhanden ist, wird das Ausgangsverzeichnis erstellt, das sich jedoch im Besitz von root befindet.
Dies passiert uns, wenn Amazon AMIs in einer Chroot-Pip erstellt werden, die als Benutzer ausgeführt wird, der auf dem Builder-Computer vorhanden ist, jedoch nicht im Chroot-Gefängnis, in dem die AMI erstellt wird. Dies ist problematisch, da dieser bestimmte Benutzer jetzt nicht mehr auf das zugreifen kann, was gerade erstellt wurde, da sein .ssh-Verzeichnis für ihn nicht lesbar ist.
Ich kann mir keinen anderen Grund vorstellen, warum pip als Benutzer ausgeführt wird, der jedoch nicht existiert. Es handelt sich also um einen Randfall.
quelle
Reduzieren Sie die Größe Ihres Docker-Images, wenn Sie Python-Abhängigkeiten in Ihrer Docker-Datei haben, da Ihre privaten Registrierungen / Artefakte oder Ihre Bereitstellungsdienste möglicherweise eine Größenbeschränkung aufweisen.
quelle
Ich erhalte einen Berechtigungsfehler für die Installation einiger Pip-Pakete, wenn ich die
--no-cache-dir
Option nicht verwende .chown /.cache
Ordner hat aus irgendeinem Grund nicht geholfen, aber--no-cache-dir
damit funktioniert es in Ordnung.quelle