0702ce9843
The element bind mounts a pip cache inside the image build chroot so that pip downloads can be reused across image builds. While similar in purpose to the PyPi element that sets up a mirror, this element just allows for a reusable download cache and doesn't require anything to be setup beforehand. The pip-cache element is not concurrency safe, and that is indicated in the README for the element. An upstream bug was file as well: https://github.com/pypa/pip/issues/1141 Change-Id: Ibd1d4ea17c24923ed939357ada95b781e3179cfd |
||
---|---|---|
.. | ||
environment.d | ||
root.d | ||
README.md |
Use a cache for pip
Using a download cache speeds up image builds.
Including this element in an image build causes $HOME/.cache/image-create/pip to be bind mounted as /tmp/pip inside the image build chroot. The $PIP_DOWNLOAD_CACHE environment variable is then defined as /tmp/pip, which causes pip to cache all downloads to the defined location.
Note that pip and its use of $PIP_DOWNLOAD_CACHE is not concurrency safe. Running multiple instances of diskimage-builder concurrently can cause issues. Therefore, it is advised to only have one instance of diskimage-builder that includes the pip-cache element running at a time.
The pip concurrency issue is being tracked upstream at https://github.com/pypa/pip/issues/1141