Blog
Wie Sie Ihre Dockerfile-Container-Image-Referenzen aktuell halten

Wenn Sie ein Container-Image erstellen, ist die Wahrscheinlichkeit groß, dass Sie öffentliche Images als Grundlage verwenden. Aber wie halten Sie Ihr Image mit den neuesten Versionen auf dem neuesten Stand? In diesem Blog werde ich Ihnen ein Dienstprogramm vorstellen, mit dem Sie die Referenzen Ihrer Dockerfile-Container-Images auf dem neuesten Stand halten können. Im klassischen IT-Betrieb ist das "Patch-Management" eine Sache. In regelmäßigen Abständen werden alle Komponenten im Rechenzentrum aktualisiert, um die neueste Version der Software auszuführen. Mit dem Cloud-nativen Prinzip der unveränderlichen Infrastruktur gilt dies nicht mehr. Es gibt keine Rechner, bei denen Sie sich anmelden müssen, und alle Änderungen, die Sie vornehmen, bleiben nicht erhalten. Aus diesem Grund haben wir ein Dienstprogramm namens "fromage" entwickelt, mit dem Sie veraltete Referenzen von Container-Images erkennen können. Es ermöglicht Ihnen auch, diese automatisch zu aktualisieren.
das Dienstprogramm installieren
Um das Dienstprogramm zu installieren, geben Sie ein:
git clone https://github.com/binxio/fromage
cd fromage
git checkout 0.2.4
go install
Sie können auch das Docker-Image binxio/fromage:0.2.4 verwenden.
Containerbild-Referenzen auflisten
Um die Referenzen auf Container-Images in Ihrem Git-Repository aufzulisten, geben Sie ein:
fromage list --branch master --verbose https://github.com/binxio/kritis
Es durchläuft alle Dockerdateien in allen Zweigen des Repositorys und gibt alle Container
Image-Referenzen aus und listet neuere Versionen auf, falls verfügbar.
| IMAGE | PFAD | BRANCHE | NEUER |
|---|---|---|---|
| golang:1.12 | helm-hooks/Dockerfile | master | 1.13,1.14,1.15 |
| gcr.io/gcp-runtimes/ubuntu_16_0_4 | helm-release/Dockerfile | master | |
| ubuntu:trusty | vendor/golang.org/x/net/http2/Dockerfile | master | |
| golang:1.12 | deploy/Dockerfile | master | 1.13,1.14,1.15 |
| gcr.io/distroless/base:latest | deploy/Dockerfile | master | |
| gcr.io/google-appengine/debian10:latest | deploy/gcr-kritis-signer/Dockerfile | master | |
| gcr.io/gcp-runtimes/ubuntu_16_0_4 | deploy/kritis-int-test/Dockerfile | master | |
| gcr.io/google-appengine/debian10:latest | deploy/kritis-signer/Dockerfile | master |
Überprüfung veralteter Referenzen
Um zu prüfen, ob neuere Referenzen verfügbar sind, geben Sie ein:
./fromage check --branch master --verbose https://github.com/binxio/kritis
Es durchläuft alle Dockerdateien in allen Zweigen des Repositorys und gibt alle Verweise auf Container-Images
aus, die nicht mehr aktuell sind. Wenn es gefunden wird, beendet es sich mit Code 1.
| IMAGE | PFAD | BRANCHE | NEUER |
|---|---|---|---|
| golang:1.12 | helm-hooks/Dockerfile | master | 1.13,1.14,1.15 |
| golang:1.12 | deploy/Dockerfile | master | 1.13,1.14,1.15 |
Sie können dies in Ihrer CI/CD-Pipeline als Qualitätskontrolltor verwenden.
Container-Referenzen auf den neuesten Stand bringen
Um die Container-Image-Referenzen auf die nächste verfügbare Version zu aktualisieren, geben Sie ein:
$ ./fromage bump --branch master --verbose git@github.com:binxio/kritis.git
2021/01/21 21:05:42 INFO: updating reference golang:1.12 to golang:1.13 in helm-hooks/Dockerfile
2021/01/21 21:05:42 INFO: updating reference golang:1.12 to golang:1.13 in helm-hooks/Dockerfile
2021/01/21 21:05:46 INFO: updating reference golang:1.12 to golang:1.13 in deploy/Dockerfile
2021/01/21 21:05:46 INFO: changes committed with 67847a0
2021/01/21 21:05:46 INFO: pushing changes to git@github.com:binxio/kritis.git
Dadurch werden die Verweise auf die nächste verfügbare Version aktualisiert. Sie können diesen Vorgang wiederholen, bis Sie die höchste Ebene erreicht haben. Alternativ können Sie auch
Fazit
Mit diesem Dienstprogramm werden Sie nie wieder mit veralteten Basis-Images arbeiten müssen. Es ermöglicht Ihnen, die Verwendung veralteter Images zu erkennen und die Image-Referenzen automatisch zu aktualisieren, um einen neuen Build Ihrer CI/CD-Pipeline auszulösen. Bild von PublicDomainPictures von Pixabay
Verfasst von

Mark van Holsteijn
Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.
Unsere Ideen
Weitere Blogs
Contact



