Docker Hub abschaffen
Docker Hub (eine Registrierungsstelle für Docker-Images) ist für meine CD-Pipeline unverzichtbar. Dort werden die privaten Images gespeichert, die meine Server automatisch abrufen(öffnet im neuen Fenster) , um neue Versionen meiner Apps zu installieren. Ich möchte Docker Hub unbedingt abschaffen.
Ein Fan von Docker Inc. bin ich schon lange nicht mehr, weil das Unternehmen ganz offensichtlich seinen Fokus ausschließlich auf Unternehmenskunden legt. Der Abstieg von Docker begann mit der Abschaltung von Docker Cloud(öffnet im neuen Fenster) . Später hat Docker wegen seiner "Fair Use" -Klausel sogar mein Abo gekündigt, weil es seine eigenen Protokolle falsch interpretiert hatte ( HTTP-HEAD-Anfragen(öffnet im neuen Fenster) wurden als Image-Abrufe gezählt).
Da meine Anforderungen simpel sind, erwog ich zunächst, eine Docker-Registry mit einem europäischen S3-kompatiblen Backend selbst zu hosten, und sah mir OVH und Scaleway Object Storage(öffnet im neuen Fenster) an. Aber die selbst gehosteten Docker-Registrys erschienen mir zu komplex und der Aufwand war nicht lohnenswert.
Stattdessen entschied ich mich für Scaleway Container Registry(öffnet im neuen Fenster) . Es wird komplett gemanagt, ist einfach zu bedienen und speichert meine Images in der EU. Letztendlich brauchte ich weniger als zwei Stunden für die Einrichtung und werde wahrscheinlich weniger als 1 Euro pro Monat dafür bezahlen. Das ist unschlagbar.
NPM
Eine zentrale Herausforderung für NPM (eine Node-Paket-Registry) ist die Abhängigkeit von öffentlichen Paketen. Sie werden bei jedem CI-Build und jedes Mal, wenn jemand das Projekt klont, heruntergeladen und installiert. Sie werden zwar gecacht, trotzdem würde eine Nichtverfügbarkeit von NPM die meisten Tools lahmlegen.
Leider konnte ich keine öffentlichen europäischen NPM-Mirrors finden (sagt Bescheid, wenn ich etwas übersehen habe). Wahrscheinlich liegt es daran, dass die meisten großen Unternehmen ihre eigenen privaten Mirrors hosten. Ich habe Verdaccio bereits als private Registry und Cache verwendet, und die Einrichtung sollte mit einem Docker-Image recht einfach sein.
Dazu muss jedoch zunächst ein persistenter Speicher eingerichtet werden. Sobald das erledigt ist, richte ich Verdaccio(öffnet im neuen Fenster) ein. Auf diese Weise habe ich auch dann noch Zugriff auf die von mir verwendeten Versionen, wenn NPM nicht verfügbar ist, und andere können diese Registry nutzen, um loszulegen.



