HH maczarr.de

Synology NAS: GitLab Docker-Container updaten

Vor ein paar Jahren hatte ich hier mal beschrieben, wie ich GitLab als Docker-Container auf meinem NAS eingerichtet hatte. Aber wie aktualisiert man so einen Docker-Container eigentlich auf dem NAS? Das möchte ich heute mal am Beispiel von besagtem GitLab-Container beschreiben.

Upgrade-Pfad herausfinden

GitLab – und das gilt auch für diverse andere Software – sollte man nicht unbedingt von jeder beliebigen, alten Version direkt auf die aktuellste Version upgraden. Erstrecht nicht, wenn es Major-Versionssprünge gab. Zuallererst loggt man sich also in seiner GitLab-Instanz mit dem Admin-User ein, geht auf /admin und schaut nach, welche Version man aktuell installiert hat. Anschließend ruft man die GitLab-Dokumentation auf und schaut dort nach dem Upgrade-Pfad. Dort identifiziert man bestimmte Versionen auf dem Pfad von der aktuell installierten Version, zur gewünschten Version (vermutlich die aktuellste), die man nach und nach installieren sollte. Sagen wir man hat GitLab 15.1.7 installiert, dann sollte man laut Upgrade-Pfad derzeit erstmal zu 15.4.6 upgraden, dann zu 15.11.13 – bei der nächsten Major-Version kann man einige überspringen, wenn man die angegebenen Bedingungen nicht erfüllt und dann direkt zu 16.3 wechseln und von dort dann zur aktuellsten Version (derzeit 16.6.1).

Image aktualisieren

In der Synology-GUI ruft man nun Docker auf und geht zur Registrierung, klickt doppelt auf gitlab/gitlab-ce und wählt aus dem Kontextmenü die richtige Version aus. Sobald der Download abgeschlossen ist kann man zur Container-Ansicht wechseln und den aktuell laufenden GitLab-Container stoppen. Nun bearbeitet man dessen Einstellungen, sodass keine fixen Ports mehr vergeben sind, da diese sonst nicht wieder benutzt werden können in einem neuen Container. Den Namen kann man mit einem backup-Suffix versehen.

Upgrade

Anschließend wechselt man zur Image-Ansicht, wählt das entsprechende Image und klickt oben den Starten-Button an. Als Netzwerk wählt man die Bridge, dass der Container automatisch neustarten soll und unter den Erweiterten Einstellungen bzw. den Folgeseiten im Assistenten gibt man die bisherigen Volume-Mounts, Ports und Umgebungsvariablen wieder an, die man zuvor auch hatte. Zum Schluss lässt man den Assistenten den Container starten. Das dauert nun einige Zeit, 20 Minuten sind da nichts ungewöhnliches. Es werden diverse Migrationsschritte durchlaufen, die die Software allesamt von alleine vollzieht. Wenn man die Details des laufenden Containers aufruft und dort zum Terminal oder dem Protokoll wechselt kann man ein bisschen "mitschauen", wie weit der Prozess gerade so ist. Anfangs wird GitLab auch noch nicht im Browser aufrufbar sein, dann kommt irgendwann immerhin ein Hinweis, dass gerade Wartungsarbeiten laufen und irgendwann kann man das System dann wieder nutzen.

Nachdem man nun eine Version hochgezogen hat geht das Prozedere von vorne los, wenn man nicht nur ein Upgrade machen musste. Das wiederholt sich so lange, bis man bei der gewünschten Version angekommen ist. Idealerweise aktualisiert man GitLab natürlich immer sofort, gerade wenn eine Sicherheitslücke gestopft wurde und auch, weil's dann alles nicht so lange dauert.