最佳答案
我希望尽快得到我的 pip install
指令在我的 docker build
内。
我读过 很多 职位,它解释了如果你的 requirements.txt
没有改变,在应用程序的其余部分之前添加 requirements.txt
会如何帮助你利用 Docker 自己的图像缓存。但是,当依赖关系确实发生变化时,这一点帮助都没有,哪怕只是轻微的变化。
下一步是我们是否可以使用一致的 pip 缓存目录。默认情况下,pip
会在 ~/.cache/pip
中缓存下载的软件包(在 Linux 上) ,所以如果你正在安装一个模块的相同版本,在系统的任何地方之前已经安装,它应该不需要再去下载它,而是简单地使用缓存版本。如果我们可以利用一个共享的缓存目录来进行 docker 构建,这将大大加快依赖性安装的速度。
但是,似乎没有任何简单的方法可以在运行 docker build
时挂载卷。构建环境似乎基本上是不可穿透的。我发现 一篇文章提出了一种天才但复杂的方法,在主机上运行 rsync
服务器,然后在构建中使用黑客技术获取主机 IP,从主机同步 pip 缓存。但是我不喜欢在 Jenkins 中运行 rsync 服务器的想法(即使在最好的情况下,这也不是最安全的平台)。
有人知道是否有其他方法可以更简单地实现共享缓存卷吗?