Speichern von Docker-Bildern auf Travis CI

8

Ist es möglich, Docker-Bilder auf Travis CI zu cachen? Der Versuch, den Ordner /var/lib/docker/aufs/diff und /var/lib/docker/repositories-aufs mit cache.directories in travis.yml zwischenzuspeichern, scheint nicht zu funktionieren, da sie root benötigen.

    
kag0 10.02.2016, 01:45
quelle

2 Antworten

7

Aus der Sicht eines Dockers denke ich, dass Sie dies am besten tun können (ohne die Möglichkeit, eine lokale Registrierung auszuführen) ) ist save das Docker-Image und speichert den exportierten Tar-Ball zwischen. Sie müssten load am Anfang anstatt pull ein Bild einfügen. Auf diese Weise werden Sie nicht mit Docker-Speicherimplementierungen herumhantieren.

%Vor%

Sie müssten dann das zwischengespeicherte Bild load vor Ihrem Travis-Lauf einfügen.

%Vor%

Das Bit, das ich für Travis nicht verstehe, ist, wenn Sie es stoppen müssen, den install -Schritt nach dem ersten Mal auszuführen. Sie möchten nicht, dass Travis das Bild jedes Mal zieht und exportiert, wenn es einmal zwischengespeichert wurde. Ich bin mir nicht sicher, ob die Anweisung cache dies automatisch für Sie erledigt?

Die Hauptfrage ist dann, ob das tatsächlich schneller geht, als das Bild zu ziehen oder nicht:

  

Beim Caching werden alle in der Konfiguration aufgelisteten Verzeichnisse getargt   und lädt sie unter Verwendung einer sicheren und geschützten URL in S3 hoch   Sicherheit und Datenschutz der hochgeladenen Archive.

     

Beachten Sie, dass dies dazu führt, dass unser Cache nicht netzwerklokal ist, an den er gebunden ist   Netzwerkbandbreite und DNS-Auflösungen für S3. Das hat Auswirkungen auf dich   kann und sollte im Cache speichern. Wenn Sie Archive speichern, die größer als a sind   einige hundert Megabyte im Cache, ist es unwahrscheinlich, dass Sie eine sehen   große Geschwindigkeitsverbesserung.

Sie könnten nur Overhead hinzufügen. Da die Docker-Registrierung von Cloudfront unterstützt wird, zieht Travis bereits komprimierte Bilder aus der lokalen oder zumindest nahen Amazon-Infrastruktur. Vielleicht bitten Sie sie für die Funktion Cache Docker Bilder nativ , ähnlich was sie für apt Pakete tun, obwohl es nicht hoffnungsvoll klingt .

    
Matt 13.02.2016 00:05
quelle
3

Sehen Sie sich an, was circleci empfiehlt: Ссылка .

Es sollte einfach sein, docker save / docker load mit dem von travis bereitgestellten Verzeichnis-Caching zu kombinieren.

    
Jan Doms 04.08.2016 21:14
quelle