EIN Build-Pipelineerfordert häufig den Zugriff auf Ressourcen von Drittanbietern, abgesehen vom Quellcode der Artefakte, die erstellt werden sollen. Jede dieser Ressourcen von Drittanbietern führt einen Risikofaktor in Builds ein, zum Beispiel:
Verteilungsrepositorys sind vorübergehend nicht verfügbar, daher schlägt die Installation von Verteilungspaketen vorübergehend fehl.
Distributions-Repositorys sind permanent nicht verfügbar, genauso und schlechter als zuvor.
Einige NPM-Pakete für freie Software existieren nicht mehr, weil der Autor diese Rücknahme zurückgefordert hat.
Einige Quelldateien oder binäre Ad-hoc-Pakete für Tools von Drittanbietern sind nicht mehr verfügbar.
Diese Liste könnte ad libitum erweitert werden, und obwohl es viel unterhaltsamer ist, die verschiedenen Gründe zu untersuchen, die dazu führen, dass Ressourcen von Drittanbietern verschwinden, hat dies für uns zunächst eine katastrophale Konsequenz: Die Build-Pipeline ist kaputt.
Was ist der beste Weg, um die beiden folgenden Fälle beim Erstellen von Docker- Bildern abzudecken :
- Zwischenspeichern von Dateien, die mit einem Curl oder Wget heruntergeladen wurden .
- Zwischenspeichern von Debian-Paketen.
Es gibt mehrere plausible Strategien, die hier berücksichtigt werden können. Verwenden Sie beispielsweise einen Proxy und konfigurieren Sie das Build-System so, dass alle seine Anforderungen über diesen Proxy weitergeleitet werden. Eine zweite, billige Möglichkeit wäre, Curl- Aufrufe zu verpacken , um die Ergebnisse in einem lokalen Cache zu speichern.
(In dieser Frage würde ich die Aufteilung des Caches auf mehrere Einheiten der Build-Pipeline als eine Frage von untergeordneter Bedeutung betrachten.)