Blog

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

Mark van Holsteijn

Mark van Holsteijn

Aktualisiert Oktober 21, 2025
3 Minuten

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.

IMAGEPFADBRANCHENEUER
golang:1.12helm-hooks/Dockerfilemaster1.13,1.14,1.15
gcr.io/gcp-runtimes/ubuntu_16_0_4helm-release/Dockerfilemaster
ubuntu:trustyvendor/golang.org/x/net/http2/Dockerfilemaster
golang:1.12deploy/Dockerfilemaster1.13,1.14,1.15
gcr.io/distroless/base:latestdeploy/Dockerfilemaster
gcr.io/google-appengine/debian10:latestdeploy/gcr-kritis-signer/Dockerfilemaster
gcr.io/gcp-runtimes/ubuntu_16_0_4deploy/kritis-int-test/Dockerfilemaster
gcr.io/google-appengine/debian10:latestdeploy/kritis-signer/Dockerfilemaster

Ü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.

IMAGEPFADBRANCHENEUER
golang:1.12helm-hooks/Dockerfilemaster1.13,1.14,1.15
golang:1.12deploy/Dockerfilemaster1.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 angeben, um auf die höchste Ebene zu gelangen. Wenn Sie Angst vor größeren Versions-Upgrades haben, fügen Sie hinzu. Änderungen werden festgeschrieben und in das Repository übertragen.

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.

Contact

Let’s discuss how we can support your journey.