GitLab Container Registry Setup

GitLab Container Registry Setup
In unserem letzten Beitrag haben wir Ihnen gezeigt, wie Sie eine GitLab -Instanz einrichten können, um die Organisation oder Ihre persönlichen Projekte zu verwalten. Wir haben Ihnen empfohlen, einen FQDN zu verwenden und die GitLab -Instanz über https verfügbar zu lassen. Da die meisten Anwendungen als Container verpackt sind, können Sie eine Containerregistrierung einrichten, in der verschiedene Versionen Ihrer Anwendung sowie verschiedene Komponenten als Docker -Bilder gespeichert werden können.

Wenn Sie nicht wissen, was eine Containerregistrierung ist, mach dir keine Sorgen. Es wird klar, sobald Sie Ihr erstes Containerbild tatsächlich in eine GitLab -Instanz drücken. Stellen Sie sich sie vorerst als Repositories für Ihre Containerbilder vor. Dies sind keine laufenden Container, sondern nur Bilder (einfache Daten), die in der Remote -Gitlab -Instanz sitzen.

Warum sollten Sie ein GitLab -Containerregister wollen??

Die Chancen stehen gut, dass Ihre Anwendung entweder als einzelnes Docker -Bild oder als Sammlung solcher Bilder verpackt wird. Dies bedeutet.

Registrierung ist für Container, was Repository für Quellencode ist und GitLab ist ein Ort, an dem sie alle behandeln können.

Voraussetzungen

  1. Eine funktionierende Gitlab -Instanz über HTTPS
  2. Root -Zugriff auf die Instanz
  3. Zugriff, um die DNS -Datensätze des Domain -Namens zu ändern

Wir gehen davon aus, dass unser Gitlab weiterläuft Gitlab.Beispiel.com .

Registrierungs -DNS- und TLS -Zertifikate

Sie müssen der Root -Benutzer sein, damit die Funktion "Containerregistrierung" über die GitLab -Instanz verfügt. Einzelne Benutzer können dann diese Funktion in ihren jeweiligen Projekten verwenden, wenn sie dies wünschen. Es gibt zwei Möglichkeiten, dies zu tun:

  1. Verwenden Sie den vorhandenen Domain -Namen und TLS -Zertifikate für wieder Gitlab.Beispiel.com und führen Sie die Registrierung auf einem anderen Hafen aus.
  2. Zeigen Sie einen anderen Domainnamen, sagen wir, Registrierung.Gitlab.Beispiel.com In derselben IP -Adresse, in der GitLab ausgeführt wird, und die Registrierung dort konfigurieren.

Gehen wir mit der zweiten Option, da sie viel professioneller ist.

Schritt 1: Fügen Sie einen A -Rekord hinzu für Registrierung.Gitlab.Beispiel.com Zeigen Sie auf dieselbe IP, bei der Ihre Gitlab -Instanz ausgeführt wird.

Schritt 2: Stoppen Sie die in Ihrem Server ausgeführten GitLab -Dienste.

$ sudo gitlab-CTL Stopp

Schritt 3: Fügen Sie den ACME -Client hinzu certbot's PPA zu Ihrem System und installieren Sie Certbot.

$ sudo add-apt-Repository PPA: certbot/certbot
$ sudo APT Update
$ sudo apt install Certbot

Schritt 4: Erhalten Sie Zertifikate von Let's Encrypt.

$ certbot certonly

Sie sehen eine Nachricht wie:
"''
Wie möchten Sie sich mit der ACME CA authentifizieren??
--
1: einen temporären Webserver (Standalone) aufspannen
2: Dateien in Webroot -Verzeichnis (WeboBroot) platzieren
--
Wählen Sie die entsprechende Nummer [1-2] dann [ENTER] (Drücken Sie 'C', um zu stornieren): 1
"''

Auf diese Weise werden Sie nach Ihrer E -Mail aufgefordert, Sie auffordern, ihren Servicebedingungen zuzustimmen, und vor allem Sie nach Ihrem Domain -Namen fragen, was wäre Registrierung.Gitlab.Beispiel.com In unserem Beispielfall. Sie erhalten eine Nachricht, die besagt, ob die Zertifikate erhalten wurden oder nicht. Wenn dies der Fall war, fahren Sie mit Schritt 5 fort

Schritt 5: Nachdem wir unsere Zertifikate haben, ist es Zeit, sie unter Gitlab -verwandte Verzeichnisse zu stellen.

$ cp/etc/letSencrypt/live/Registrierung.Gitlab.Beispiel.com/fullchain.Pem
/etc/gitlab/ssl/Registrierung.Gitlab.Beispiel.crt
$ cp/etc/letSencrypt/live/Registrierung.Gitlab.Beispiel.com/privkey.Pem
/etc/gitlab/ssl/Registrierung.Gitlab.Beispiel.Taste

Sichern Sie die Berechtigungen auf sie:

$ chmod 600/etc/gitlab/ssl/Registrierung.Gitlab.Beispiel.com.*

Stellen Sie wie der Rest des Tutorials sicher, dass Sie das Beispiel ersetzen.com mit Ihrem vorhandenen Domainnamen. Da wird der Name des Verzeichnisses sein, wo Certbot das Zertifikat gespeichert hat.

Schritt 6: Bearbeiten Sie die GitLab -Konfiguration. Öffnen Sie die Datei /etc/gitlab/gitlab.rb und fügen Sie die folgenden Zeilen zum Ende hinzu:

Registry_external_url 'https: // Registrierung.Gitlab.Beispiel.com '

Wenn Sie alles sorgfältig getan haben, ist der komplizierteste Teil des Setups vorbei! Sie werden jetzt eine Containerregistrierung in Betrieb haben, einfach ausführen:

$ sudo gitlab-CTL Reconfigure
$ sudo gitlab-CTL Start

Registrierung aktivieren und Bilder schieben

Jetzt, da wir uns eine Containerregistrierung haben, lassen Sie uns ein neues Projekt mit der GitLab -Web -Benutzeroberfläche erstellen und überprüfen, ob es funktioniert.

In der linken Spalte sehen Sie einen Registrierungsabschnitt. Sie können darauf klicken, um detaillierte Anweisungen zum Anmelden zu sehen und Bilder hineinzuschieben. Kehren wir zu unserem örtlichen Desktop zurück, bei dem Docker darauf installiert werden sollte.

Wir können es verwenden, um einen einfachen Hello-World-Container zu erstellen und es in diese Registrierung zu bringen. Erstellen Sie in Ihrem lokalen System einen neuen Ordner:

$ cd ~
$ mkdir sample_container

Lassen Sie uns eine Datei namens erstellen Dockerfile und fügen Sie den folgenden Inhalt hinzu:

Von Ubuntu: Neueste
## Ihre benutzerdefinierten Befehle hier

Sie können Ihre Dockerfile nur mit der ersten Zeile behalten. Es wird ein einfacher Ubuntu -Behälter sein. Jetzt bauen Sie es mit einem aussagekräftigen Tag (wir werden das Tag verwenden Mein Projekt Das ist das gleiche wie unser Gitlab -Projektname, das ist wichtig). Im selben Verzeichnislauf:

$ docker Build -t -Registrierung.Gitlab.Beispiel.com//Mein Projekt .

Denken Sie daran, Ihren Gitlab -Benutzernamen anstelle des im obigen Befehls verwendeten Platzhalters zu ersetzen.

Es schafft nur einen Ubuntu -Behälter zusammen mit dem Abrufen des Bildes. Dieses Bild wird gedrückt. Wenn Sie den Container ändern und ein neues Bild damit erstellen (mithilfe dieser Verwendung Docker Commit Befehl Es wird ein neues Bild sein). Lassen Sie uns das Vanille -Ubuntu -Bild in unsere Registrierung schieben.

Zunächst müssen wir uns mit unserem GitLab -Benutzernamen und unserem Passwort anmelden:

$ docker Anmelderegistrierung.Gitlab.Beispiel.com

Dann renne:

$ docker Build -t -Registrierung.Gitlab.Beispiel.com/root/my-project .
$ Docker Push Registry.Gitlab.Beispiel.com/root/my-project

Wenn Sie sich nicht sicher sind, wie das Tag Ihres Containers aussehen soll, besuchen Sie die Registrierungsseite Ihres Projekts und es gibt klare Anweisungen dafür. Wenn der Befehl Docker Push ordnungsgemäß funktioniert hat, können Sie ein neues Docker -Bild in Ihrer GitLab -Instanz hochgeladen (oder gedrückt) sehen. Wie es in meinem Fall gezeigt wurde:

Abschluss

Die Versionskontrolle ist so viel mehr als nur die Quellcodeverwaltung. Es verbessert sich ständig, um eine vielseitige Reihe von Anforderungen gerecht zu werden, die jedes Softwareprojekt möglicherweise unerwartet benötigt. Containerregister ist nur die Spitze des Eisbergs. Sie können CD/CI -Pipelines, erweiterte Konfigurationsverwaltung, Autorisierung über Token und eine Vielzahl anderer Funktionen in GitLab ermöglichen. Ich hoffe, Sie haben in diesem Tutorial etwas Neues über diese wundervolle Technologie gelernt.

Lassen Sie uns wissen, ob Sie etwas geben möchten, das wir abdecken sollen!