Beim Erstellen von Dockerfiles mit dem Alpine-Image habe ich oft die Verwendung des apk --no-cache
und anderer Commits gesehen , und stattdessen sehe ich rm /var/cache/apk/*
.
Ich bin neugierig zu wissen, dass die Verwendung von das --no-cache
die Notwendigkeit beseitigt, später eine zu tun rm /var/cache/apk/*
. Ich würde auch gerne wissen, ob ein Stil einem anderen vorgezogen wird.
docker
dockerfile
alpine
Engel S. Moreno
quelle
quelle
--no-cache
ist es , so dass Sie nicht tun müssen , umrm /var/cache/apk/*
späterAntworten:
Mit dieser
--no-cache
Option kann der Index nicht lokal zwischengespeichert werden. Dies ist hilfreich, um Container klein zu halten.Es ist buchstäblich gleich
apk update
am Anfang undrm -rf /var/cache/apk/*
am Ende.Ein Beispiel, in dem wir die
--no-cache
Option verwenden:Ein weiteres Beispiel, bei dem wir keine
--no-cache
Option verwenden:Wie Sie sehen, sind beide Fälle gültig. Für mich ist die Verwendung von
--no-cache
Optionen eleganter.quelle
--no-cache
das eleganter ist. Bei mehrerenapk add --no-cache
Befehlen werden die Indexdateien jedoch jedes Mal heruntergeladen. In diesem Fall ist es weniger Netzwerk-Chatterapk update
obenrm -rf /var/cache/apk/*
als unten. Dies ist wirklich wichtig, wenn einige Pakete hinzugefügt werden--virtual
und andere nicht.Ich denke, das ist ein Designstil. Der Kern des Caches besteht in der Wiederverwendung. Beispielsweise können mehrere Container dasselbe zwischengespeicherte Dateisystem bereitstellen, ohne es wiederholt aus dem Netzwerk herunterzuladen.
Kann das Apline-Wiki anzeigen: https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management#Local_Cache
quelle