Verwendung eines Pip-Cache-Verzeichnisses in Docker-BuildsPython

Python-Programme
Anonymous
 Verwendung eines Pip-Cache-Verzeichnisses in Docker-Builds

Post by Anonymous »

Ich hoffe, dass ich meine Pip-Installationsanweisungen so schnell wie möglich in meine Docker-Buildss bekomme.

Ich habe viele Beiträge gelesen, in denen erklärt wird, wie das Hinzufügen Ihrer „requirements.txt“ vor dem Rest der App Ihnen dabei hilft, den Docker-eigenen Image-Cache zu nutzen, wenn sich Ihre „requirements.txt“ nicht geändert hat. Aber das ist überhaupt keine Hilfe, wenn sich Abhängigkeiten ändern, auch nur geringfügig.

Der nächste Schritt wäre, wenn wir ein konsistentes Pip-Cache-Verzeichnis verwenden könnten. Standardmäßig speichert pip heruntergeladene Pakete in ~/.cache/pip (unter Linux) zwischen. Wenn Sie also jemals dieselbe Version eines Moduls installieren, das zuvor irgendwo auf dem System installiert wurde, sollte es nicht erforderlich sein, es erneut herunterzuladen, sondern einfach die zwischengespeicherte Version zu verwenden. Wenn wir ein gemeinsames Cache-Verzeichnis für Docker-Builds nutzen könnten, könnte dies dazu beitragen, Abhängigkeitsinstallationen erheblich zu beschleunigen.

Es scheint jedoch keine einfache Möglichkeit zu geben, ein Volume bereitzustellen, während Docker Build ausgeführt wird. Die Build-Umgebung scheint grundsätzlich undurchdringlich zu sein. Ich habe einen Artikel gefunden, der eine geniale, aber komplexe Methode vorschlägt, einen rsync-Server auf dem Host auszuführen und dann mit einem Hack innerhalb des Builds, um die Host-IP zu erhalten, den Pip-Cache vom Host aus zu rsyncen. Aber ich bin nicht begeistert von der Idee, einen Rsync-Server in Jenkins zu betreiben (was selbst in den besten Zeiten nicht die sicherste Plattform ist).

Weiß jemand, ob es eine andere Möglichkeit gibt, einfacher ein gemeinsames Cache-Volume zu erreichen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post