ฉันเพิ่งเห็น--no-cache-dir
การใช้งานในไฟล์ Docker ฉันไม่เคยเห็นธงนั้นมาก่อนและความช่วยเหลือไม่ได้อธิบาย:
--no-cache-dir Disable the cache.
- คำถาม: แคชคืออะไร?
- คำถาม: แคชใช้ทำอะไร?
- คำถาม: ทำไมฉันถึงต้องการปิดการใช้งาน?
ฉันเพิ่งเห็น--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
ใน docker สำหรับ python 3.6.10 และรูปภาพที่สูงกว่า
อีกเหตุผลหนึ่งในการปิดการใช้งาน pip cache - หากคุณเรียกใช้ pip ในฐานะผู้ใช้ที่ยังไม่มีอยู่โฮมไดเร็กทอรีของพวกเขาจะถูกสร้างขึ้น แต่เป็นของ root
สิ่งนี้เกิดขึ้นกับเราเมื่อสร้าง Amazon AMI ใน chroot - pip กำลังทำงานในฐานะผู้ใช้ที่มีอยู่ในเครื่อง builder แต่ไม่ได้อยู่ในคุก chroot ที่กำลังสร้าง AMI นี่เป็นปัญหาเนื่องจากผู้ใช้เฉพาะรายนั้นไม่สามารถ ssh ไปยังสิ่งที่สร้างขึ้นเนื่องจากไดเร็กทอรี. ssh ของพวกเขาไม่สามารถอ่านได้
ฉันไม่คิดว่าจะมีเหตุผลอื่นใดที่ pip จะถูกเรียกใช้ในฐานะผู้ใช้ที่ไม่มีอยู่จริงดังนั้นจึงเป็นกรณีที่ได้เปรียบมาก
ลดขนาดอิมเมจนักเทียบท่าของคุณหากคุณมีการพึ่งพา python ใน DockerFile เนื่องจากรีจิสเตอร์ / อาร์ติแฟกต์ส่วนตัวของคุณหรือเซอร์วิสการปรับใช้ของคุณอาจมีข้อ จำกัด ด้านขนาด
ฉันได้รับข้อผิดพลาดเกี่ยวกับสิทธิ์ในการติดตั้งแพ็คเกจ pip บางอย่างหากฉันไม่ได้ใช้--no-cache-dir
ตัวเลือก
Building wheels for collected packages: pyyaml, bottleneck, nvidia-ml-py3
WARNING: Building wheel for pyyaml failed: [Errno 13] Permission denied: '/home/user/.cache/pip/wheels/b1'
WARNING: Building wheel for bottleneck failed: [Errno 13] Permission denied: '/home/user/.cache/pip/wheels/92'
WARNING: Building wheel for nvidia-ml-py3 failed: [Errno 13] Permission denied: '/home/user/.cache/pip/wheels/7f'
chown /.cache
โฟลเดอร์ไม่ได้ช่วยด้วยเหตุผลบางประการ แต่ใช้--no-cache-dir
งานได้ดี