我最近看到在Docker文件中使用——no-cache-dir。我从没见过那面旗子,工作人员也不解释
--no-cache-dir Disable the cache.
问:缓存的是什么? 问:缓存的用途是什么? 问:我为什么要禁用它?
我最近看到在Docker文件中使用——no-cache-dir。我从没见过那面旗子,工作人员也不解释
--no-cache-dir Disable the cache.
问:缓存的是什么? 问:缓存的用途是什么? 问:我为什么要禁用它?
当前回答
来自fastapi官方文档
——no-cache-dir选项告诉pip不要将下载的包保存在本地,因为只有当pip要再次运行以安装相同的包时才会这样做,但在使用容器时就不是这样了。
基本上,不需要存储本地安装的任何包缓存,因为docker容器不需要它。
其他回答
我认为在构建Docker映像时使用——no-cache-dir是一个很好的理由。缓存在Docker映像中通常是无用的,你可以通过禁用缓存来缩小映像大小。
禁用pip缓存的另一个原因是,如果您以一个还不存在的用户运行pip,则将创建他们的主目录,但由root拥有。
当在chroot中构建Amazon AMI时,我们会遇到这种情况——pip作为构建器机器上的用户运行,而不是在构建AMI的chroot监牢中运行。这是有问题的,因为特定的用户现在不能ssh到他们无法读取的刚刚构建的.ssh目录。
我想不出pip作为一个不存在的用户运行的任何其他原因,所以这是一个非常极端的情况。
缓存是:储存起来或供将来使用 用于
存储安装文件(。Whl等)通过PIP安装的模块 存储源文件(.tar.gz等),以避免在未过期时重新下载
禁用缓存的可能原因:
你的硬盘没有空间了 之前运行PIP install时使用意外设置 例如: 之前执行export PYCURL_SSL_LIBRARY=nss和pip install pycurl 想要新的PYCURL_SSL_LIBRARY=openssl和pip安装pycurl——compile——no-cache-dir 你想让Docker映像尽可能小
文档链接
https://pip.pypa.io/en/stable/reference/pip_install/#caching – @emredjan https://pip.pypa.io/en/stable/reference/pip_install/ - @mikea
如果我不使用——no-cache-dir选项,我得到安装一些pip包的权限错误。
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'
乔恩/。由于某些原因,缓存文件夹没有帮助,但是使用——no-cache-dir就可以了。
来自fastapi官方文档
——no-cache-dir选项告诉pip不要将下载的包保存在本地,因为只有当pip要再次运行以安装相同的包时才会这样做,但在使用容器时就不是这样了。
基本上,不需要存储本地安装的任何包缓存,因为docker容器不需要它。