Verwenden Sie Multi-Stage-Docker-Bauten, um weniger zu versenden_
Multi-Stage-Bauten reduzieren die Bildgröße und die Angriffsfläche, aber das eigentliche Ziel ist nicht Alpine allein. Das Ziel ist es, nur das zu versenden, was die Produktion benötigt.
Der beste Grund, Multi-Stage-Docker-Bauten zu verwenden, ist nicht die Ästhetik. Es ist Disziplin.
Produktionsbilder sollten die Anwendung und die Laufzeitumgebung enthalten, die erforderlich ist, um sie auszuführen. Sie sollten nicht auch enthalten:
Compiler
Paketmanager-Cache
Testwerkzeuge
Quelldateien, die nur zur Build-Zeit nützlich sind
Multi-Stage-Bauten machen diese Trennung ausdrücklich.
Das gibt Ihnen eine klare Grenze zwischen "was zum Bauen erforderlich ist" und "was zum Ausführen erforderlich ist."
Die Alpine-Warnung
Alpine kann ein gutes Laufzeitbild sein. Es ist jedoch nicht automatisch das richtige.
Sie müssen weiterhin über Folgendes nachdenken:
native Abhängigkeiten
libc-Kompatibilität
Debugging-Bedarf
Bildherkunft
Manchmal ist ein schlankes Debian-basiertes Bild der bessere operative Kompromiss. Das Prinzip besteht darin, weniger zu versenden, nicht ein bestimmtes Basisbild zu verehren.
Was Ihnen das bringt
Gut gemacht verbessern Multi-Stage-Bauten:
Bildgröße
Kaltstart- und Ladezeit
Angriffsfläche
Klarheit über Laufzeitabhängigkeiten
Deshalb sind sie wertvoll, auch wenn der Unterschied in der Bildgröße moderat ist.