Wie installiere ich GitLab mit Docker unter Ubuntu 20.04 LTS?

GitLab ist ein Open-Source-Repository-Manager, der auf Rails basiert und von GitLab Inc. entwickelt wurde. Es ist ein webbasierter Git-Repository-Manager, der es Ihrem Team ermöglicht, an der Codierung, dem Testen und der Bereitstellung von Anwendungen zusammenzuarbeiten. GitLab bietet verschiedene Funktionen, einschließlich Wikis, Problemverfolgung, Code-Reviews und Aktivitäts-Feeds.

In diesem Tutorial zeigen wir Ihnen, wie Sie GitLab mit Hilfe des Dockers und Docker Compose installieren. Außerdem werden wir das Ubuntu 20.04 als primäres Betriebssystem verwenden und den Docker aus dem offiziellen Ubuntu FocalFossa-Repository installieren.

Voraussetzungen

  • Ubuntu-Server 20.04
  • Mindestens 4 GB RAM
  • Root-Privilegien

Was werden wir tun?

  • Docker installieren und Docker komponieren
  • GitLab-Docker-Projekt einrichten
  • Bauen Sie einen GitLab-Container
  • GitLab nach der Installation

Schritt 1 – Docker installieren und Docker zusammenstellen

Zunächst werden wir die Docker- und Docker-Compose-Pakete auf unserem Ubuntu 20.04-System installieren. Und wir werden die Docker-Pakete verwenden, die vom offiziellen Ubuntu FocalFossa-Repository zur Verfügung gestellt werden.

Aktualisieren Sie alle Repositorys auf die neueste Version und installieren Sie docker und docker-compose mit dem unten stehenden apt-Befehl.

sudo apt update
sudo apt install docker.io containerd docker-compose

Sobald die gesamte Installation abgeschlossen ist, starten Sie den Docker-Dienst und fügen ihn dem Systemstart hinzu.

systemctl start docker
systemctl enable docker

Als nächstes überprüfen Sie den Docker-Dienst mit dem systemctl-Befehl unten.

systemctl status docker

Daraufhin ist der Docker-Dienst auf dem Ubuntu 20.04 Server einsatzbereit.

Docker unter Ubuntu 20.04 installieren

Um die Installation des Dockers zu verifizieren, führen Sie den unten stehenden Befehl „hello-world“ des Dockers aus.

docker run hello-world

Nun erhalten Sie die „Hallo-Welt“-Nachricht vom Docker wie unten beschrieben.

Docker laufen Hallo Welt

Jetzt sind wir bereit, GitLab mit Docker-Container und Docker-Compose zu installieren.

Schritt 2 – GitLab-Verzeichnis einrichten

In diesem Schritt richten wir unser Projektverzeichnis für die GitLab-Installation ein.

Erstellen Sie ein neues Verzeichnis namens ‚gitlab‘ und gehen Sie hinein.

mkdir -p gitlab; cd gitlab/

Das Verzeichnis „gitlab“ wird verwendet, um alle Docker-Skripte und Konfigurationen für GitLab zu speichern.

Erstellen Sie ein GitLab-Datenverzeichnis und eine .env-Datei

In diesem Abschnitt werden wir ein neues Verzeichnis zum Speichern all unserer GitLab-Daten erstellen und eine neue „.env“-Datei erstellen, die vom Docker verwendet wird.

Erstellen Sie ein neues GitLab-Datenverzeichnis „/srv/gitlab“ mit dem Befehl mkdir unten.

mkdir -p /srv/gitlab/{config/ssl,logs,data}

Als nächstes erstellen Sie im „gitlab“-Projektverzeichnis eine neue „.env“-Datei mit Hilfe von vim editor.

vim .env

Definieren Sie die Umgebungsvariable „GITLAB_HOME“ mit dem Wert als GitLab-Datenverzeichnis „/srv/gitlab“ wie unten angegeben.

GITLAB_HOME=/srv/gitlab

Speichern und schließen.

Das Skript docker-compose.yml wird die Umgebungsvariable für Gitlab-Volumes verwenden.

Docker-compose.yml-Skript erstellen

Als Nächstes werden wir eine neue „docker-compose.yml“ erstellen, die zum Bau unseres GitLab-Containers verwendet wird.

Erstellen Sie die neue Datei ‚docker-compose.yml‘ mit dem untenstehenden Befehl vim.

vim docker-compose.yml

Definieren Sie den Dienst namens „web“ mit dem Bild der neuesten Version von „gitlab-ce“, und ändern Sie den „Hostnamen“ mit Ihrem GitLab-Domänennamen.

web:
  image: 'gitlab/gitlab-ce:latest'
  restart: always
  hostname: 'gitlab.hakase-labs.io'

Konfigurieren Sie die Umgebung für Ihre Gitlab-Installation wie unten beschrieben. Und stellen Sie sicher, dass Sie die „external_url“ mit dem sicheren HTTPS-Protokoll ändern, und ändern Sie den „gitlab_rails[‚gitlab_shell_ssh_port‘]“ mit Ihrem alternativen SSH-Port für den Container.

  environment:
    GITLAB_OMNIBUS_CONFIG: |
      # Add any other gitlab.rb configuration here, each on its own line
      external_url 'https://gitlab.hakase-labs.io'
      gitlab_rails['gitlab_shell_ssh_port'] = 2224
      nginx['redirect_http_to_https'] = true
      nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
      nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
      nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"

Als nächstes definieren Sie die Ports für den GitLab-Container wie unten beschrieben. Und stellen Sie sicher, dass Sie den SSH-Port „2224“ mit Ihrem benutzerdefinierten Port ändern und mit dem Port „gitlab_shell_ssh_port“ oben übereinstimmen.

  ports:
    - '80:80'
    - '443:443'
    - '2224:22'

Danach definieren Sie das Volumen oder Ihre GitLab-Datenverzeichnisse. Alle GitLab-Datenverzeichnisse sind im Verzeichnis „GITLAB_HOME“ verfügbar, das durch die Umgebungsvariable in der Datei „.env“ oben festgelegt wird.

  volumes:
    - '${GITLAB_HOME}/config:/etc/gitlab'
    - '${GITLAB_HOME}/logs:/var/log/gitlab'
    - '${GITLAB_HOME}/data:/var/opt/gitlab'
    - '${GITLAB_HOME}/config/ssl:/etc/gitlab/ssl'

Speichern und schließen.

Unten sehen Sie die vollständige Konfiguration.

web:
  image: 'gitlab/gitlab-ce:latest'
  restart: always
  hostname: 'gitlab.hakase-labs.io'

environment:
GITLAB_OMNIBUS_CONFIG: |
# Add any other gitlab.rb configuration here, each on its own line
external_url ‚https://gitlab.hakase-labs.io‘
gitlab_rails[‚gitlab_shell_ssh_port‘] = 2224
nginx[‚redirect_http_to_https‘] = true
nginx[’ssl_certificate‘] = „/etc/gitlab/ssl/fullchain.pem“
nginx[’ssl_certificate_key‘] = „/etc/gitlab/ssl/privkey.pem“
nginx[’ssl_dhparam‘] = „/etc/gitlab/ssl/dhparams.pem“

ports:
– ’80:80′
– ‚443:443‘
– ‚2224:22‘

volumes:
– ‚${GITLAB_HOME}/config:/etc/gitlab‘
– ‚${GITLAB_HOME}/logs:/var/log/gitlab‘
– ‚${GITLAB_HOME}/data:/var/opt/gitlab‘
– ‚${GITLAB_HOME}/config/ssl:/etc/gitlab/ssl‘

Als Ergebnis wurde das Skript „docker-compose.yml“ für die Installation des GitLab-Projekts erstellt.

SSL- und DHAPARAM-Zertifikate erzeugen

In diesem Schritt werden wir das SSL Letsencrypt für unsere GitLab-Installation generieren.

Installieren Sie auf Ihrem Server das certbot-Tool mit dem folgenden apt-Befehl.

sudo apt install certbot

Danach generieren Sie das SSL-Zertifikat für GitLab mit dem unten stehenden Befehl certbot.

certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email user@hakase-labs.io -d gitlab.hakase-labs.io

Sobald alles abgeschlossen ist, sind Ihre Zertifikate im Verzeichnis ‚/etc/letsencrypt/live/gitlab.yourdomain‘ verfügbar.

Kopieren Sie nun die Zertifikatsdatei „fullchain.pem“ und „privkey.pem“ in das Verzeichnis „/srv/gitlab/config/ssl/“.

cp /etc/letsencrypt/live/gitlab.hakase-labs.io/fullchain.pem /srv/gitlab/config/ssl/
cp /etc/letsencrypt/live/gitlab.hakase-labs.io/privkey.pem /srv/gitlab/config/ssl/

Und das SSL Letsencrypt für GitLab ist bereit.

Als nächstes erzeugen Sie das DHPARAM-Zertifikat „dhparam.pem“ mit dem Befehl openssl unten.

sudo openssl dhparam -out /srv/gitlab/config/ssl/dhparams.pem 2048

Und alle Zertifikate für die GitLab-Installation wurden generiert, und wir sind bereit, den GitLab-Container zu erstellen.

SSL für GitLab einrichten

Schritt 3 – Bauen Sie den GitLab-Container

In diesem Schritt werden wir unseren GitLab-Container mit der gesamten Konfiguration, die wir oben erstellt haben, und mit dem Befehl docker-compose erstellen.

Bevor Sie weitermachen, können Sie alle verfügbaren Dateien im „gitlab“-Projektverzeichnis und der Verzeichnisstruktur des GitLab Data-Verzeichnisses überprüfen.

ls -lah ~/gitlab/
tree /srv/gitlab

Unten sehen Sie das Ergebnis, das Sie erhalten werden.

Alle Dateien für GitLab Container einrichten

Wechseln Sie als nächstes zum Projektverzeichnis „~/gitlab“ und erstellen Sie den GitLab-Container mit dem unten stehenden Befehl „docker-compose“.

cd ~/gitlab
docker-compose up -d

Sobald alles abgeschlossen ist, erhalten Sie das Ergebnis wie unten dargestellt.

Docker-Container für GitLab bauen

Überprüfen Sie nun den laufenden Container und die „LISTEN“-Ports auf Ihrem Ubuntu-System mit folgendem Befehl.

docker-compose ps
ss -plnt

Und Sie erhalten den Container „gitlab_web_1„, und Sie haben den vom GitLab-Container verwendeten HTTP-, HTTPS- und SSH-Port „2224“.

GitLab-Behälter prüfen

Wie Sie sehen können, ist der GitLab-Container einsatzbereit, und wir sind bereit, unsere GitLab-Installation einzurichten.

Schritt 4 – GitLab nach der Installation

Öffnen Sie Ihren Webbrowser und geben Sie Ihre GitLab-URL-Installation in die Adressleiste ein.

https://gitlab.hakase-labs.io/

Und Sie erhalten die Seite mit dem zurückgesetzten GitLab-Passwort.

GitLab Passwort ändern

Geben Sie Ihr neues Passwort für den Standardbenutzer „root“ ein und klicken Sie auf die Schaltfläche „Passwort ändern“.

Nun erhalten Sie die GitLab-Anmeldeseite wie unten beschrieben.

Gitlab Login-Seite als Standard-Root-Benutzer

Melden Sie sich mit dem Standardbenutzer „root“ und Ihrem neuen Passwort an und klicken Sie dann auf „Anmelden“.

Sie erhalten dann das GitLab Dashboard wie unten dargestellt.

GitLab-Dashboard

Wie Sie sehen können, ist die GitLab-Installation mit Docker und Docker-Composite abgeschlossen.

Schritt 5 – Grundkonfiguration GitLab-Container

Nach der GitLab-Installation können Sie dem GitLab-Container einige zusätzliche Konfigurationen hinzufügen, ohne den GitLab-Container zu zerstören. In diesem Schritt zeigen wir Ihnen die grundlegende Art und Weise der Verwaltung des GitLab-Containers.

Bevor Sie weitergehen, gehen Sie in das Projektverzeichnis „~/gitlab“ und überprüfen Sie den Container-Status mit dem folgenden Befehl.

cd ~/gitlab
docker-compose ps

Sie werden sehen, dass der GitLab-Container einsatzbereit ist und läuft.

Überprüfen Sie den GitLab-Service-Status innerhalb des Containers

Um alle GitLab-Dienste innerhalb des Gitlab-Containers zu überprüfen, verwenden Sie den „docker exec“-Befehl wie unten beschrieben.

sudo docker exec -it gitlab_web_1 gitlab-ctl status

Unten sehen Sie das Ergebnis, das Sie erhalten werden.

Status der Container-Prüfdienste von Gitlab

Wie Sie sehen können, sind alle GitLab-Dienstkomponenten einsatzbereit und laufen.

Zugang zum GitLab-Container

Um SSH an den GitLab-Container zu senden, benutzen Sie den „Docker exec“ mit der „bash“-Shell innerhalb des Containers wie unten beschrieben.

sudo docker exec -it gitlab_web_1 /bin/bash

Überprüfen Sie nun die Standard-Ubuntu-Version des GitLab-Containers.

cat /etc/lsb-release

Sie erhalten den GitLab-Container, der auf einem Ubuntu 16.04 Xenial basiert.

Anmeldung zum GitLab-Container

Geben Sie nun „exit“ ein, um sich vom GitLab-Container abzumelden.

Bearbeiten Sie die GitLab-Konfiguration gitlab.rb

Um die GitLab-Konfiguration innerhalb des Containers zu ändern, können Sie den Standard-„Editor“ auf dem Docker-Container selbst verwenden.

Bearbeiten Sie die Konfiguration „/etc/gitlab/gitlab.rb“ innerhalb des Containers mit dem unten stehenden Docker-Befehl.

sudo docker exec -it gitlab_web_1 editor /etc/gitlab/gitlab.rb

Nun erhalten Sie den Standard-Editor „nano“ auf dem Bildschirm, mit der Konfigurationsdatei „gitlab.rb“.

Geben Sie Ihre Konfiguration ein, speichern Sie sie und verlassen Sie den Editor.

Um die neuen Änderungen auf GitLab anzuwenden, starten Sie als nächstes den Gitlab-Containerdienst mit dem unten stehenden Befehl neu.

sudo docker restart gitlab_web_1

Stellen Sie nun sicher, dass kein Fehler vorliegt, überprüfen Sie den Status des GitLab-Containers mit dem folgenden Befehl.

sudo docker-compose ps

Stellen Sie nun sicher, dass sich der GitLab-Cotainer im Zustand „Up (healty)“ befindet.

GitLab-Behälter konfigurieren

Infolgedessen wurde die neue Konfiguration für GitLab angewendet.

Und schließlich wurde die Installation von GitLab unter Verwendung des Dockers und docker-compose erfolgreich abgeschlossen.

Das könnte dich auch interessieren …