Niedawno widziałem, jak --no-cache-dir
jest używany w pliku Docker. Nigdy wcześniej nie widziałem tej flagi, a pomoc nie wyjaśnia tego:
--no-cache-dir Disable the cache.
- Pytanie: Co jest buforowane?
- Pytanie: Do czego służy pamięć podręczna?
- Pytanie: Dlaczego miałbym chcieć to wyłączyć?
pip no-cache-dir
to jest teraz pierwszy wynik.Odpowiedzi:
.whl
itp.) modułów, które instalujesz za pomocą pip.tar.gz
itp.), aby uniknąć ponownego pobierania, gdy nie wygasłypip install
z nieoczekiwanymi ustawieniamiexport PYCURL_SSL_LIBRARY=nss
ipip install pycurl
export PYCURL_SSL_LIBRARY=openssl
ipip install pycurl --compile --no-cache-dir
Linki do dokumentacji
https://pip.pypa.io/en/stable/reference/pip_install/#caching - @emredjan https://pip.pypa.io/en/stable/reference/pip_install/ - @mikea
źródło
--no-cache-dir
, prawda?Myślę, że jest dobry powód, aby używać go
--no-cache-dir
podczas tworzenia obrazów Dockera. Pamięć podręczna jest zwykle bezużyteczna w obrazie Dockera i zdecydowanie można zmniejszyć rozmiar obrazu, wyłączając pamięć podręczną.źródło
ENV PIP_NO_CACHE_DIR=1
w Docker dla obrazów Pythona 3.6.10 i nowszychKolejny powód, aby wyłączyć pamięć podręczną pip - jeśli uruchomisz pip jako użytkownik, który jeszcze nie istnieje, zostanie utworzony jego katalog domowy, ale będący własnością roota.
Dzieje się tak, gdy budujemy Amazon AMI w chroot - pip jest uruchamiany jako użytkownik, który istnieje na maszynie budującej, ale nie w więzieniu chroot, gdzie konstruowany jest AMI. Jest to problematyczne, ponieważ ten konkretny użytkownik nie może teraz ssh do tego, co właśnie zostało zbudowane, ponieważ jego katalog .ssh nie jest dla nich czytelny.
Nie przychodzi mi do głowy żaden inny powód, dla którego pip miałby być uruchamiany jako użytkownik, który nie istnieje, więc jest to bardzo ważny przypadek.
źródło
Zmniejsz rozmiar obrazu platformy Docker, jeśli masz zależności języka Python w pliku DockerFile, ponieważ Twoje prywatne rejestry / artefaktory lub usługi wdrażania mogą mieć ograniczenie rozmiaru.
źródło
Jeśli nie używam
--no-cache-dir
opcji, pojawia się błąd uprawnień do instalacji niektórych pakietów pip .chown /.cache
folder nie pomógł z jakiegoś powodu, ale z--no-cache-dir
nim działa dobrze.źródło