GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie 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, mit dem Ihr Team beim Codieren, Testen und Bereitstellen von Anwendungen zusammenarbeiten kann. GitLab bietet mehrere Funktionen, darunter Wikis, Problemverfolgung, Codeüberprüfungen und Aktivitätsfeeds.

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

Voraussetzungen

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

Was werden wir tun?

  • Installieren Sie Docker und Docker Compose
  • GitLab-Docker-Projekt einrichten
  • Erstellen Sie einen GitLab-Container
  • GitLab-Postinstallation

Schritt 1 – Docker und Docker Compose installieren

Zuerst werden wir die Pakete docker und docker-compose auf unserem Ubuntu 20.04-System installieren. Und wir werden die Docker-Pakete verwenden, die vom offiziellen Ubuntu FocalFossa-Repository bereitgestellt werden.

Aktualisieren Sie alle Repositories auf die neueste Version und installieren Sie docker und docker-compose mit dem folgenden 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 Sie ihn zum Systemstart hinzu.

systemctl start docker
systemctl enable docker

Überprüfen Sie als Nächstes den Docker-Dienst mit dem folgenden systemctl-Befehl.

systemctl status docker

Als Ergebnis läuft der Docker-Dienst auf Ubuntu 20.04 Server.

Um die Docker-Installation zu überprüfen, führen Sie den folgenden Docker-Befehl „hello-world“ aus.

docker run hello-world

Jetzt erhalten Sie die „Hello-World“-Nachricht von Docker wie unten gezeigt.

Jetzt können wir GitLab mit Docker Container und Docker-Compose 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 „gitlab“-Verzeichnis 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 erstellen wir ein neues Verzeichnis zum Speichern all unserer GitLab-Daten und erstellen eine neue „.env“-Datei, die von Docker verwendet wird.

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

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

Erstellen Sie als Nächstes im Projektverzeichnis „gitlab“ eine neue „.env“-Datei mit dem vim-Editor.

vim .env

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

GITLAB_HOME=/srv/gitlab

Speichern und schließen.

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

Docker-compose.yml-Skript erstellen

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

Erstellen Sie die neue Datei „docker-compose.yml“ mit dem folgenden vim-Befehl.

vim docker-compose.yml

Definieren Sie den Dienst namens „web“ mit dem Image der neuesten Version von „gitlab-ce“ und ändern Sie den „hostname“ 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 und „gitlab_rails['gitlab_shell_ssh_port']“ mit Ihrem alternativen SSH-Port für den Container ändern.

  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"

Definieren Sie als Nächstes 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 abgleichen.

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

Definieren Sie danach das Volume oder Ihre GitLab-Datenverzeichnisse. Alle GitLab-Datenverzeichnisse sind im Verzeichnis „GITLAB_HOME“ verfügbar, das die Umgebungsvariable in der „.env“-Datei oben setzt.

  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.

Nachfolgend finden 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 generieren

In dieser Phase generieren wir das SSL Letsencrypt für unsere GitLab-Installation.

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

sudo apt install certbot

Generieren Sie danach das SSL-Zertifikat für GitLab mit dem Befehl certbot unten.

certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -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 fertig.

Generieren Sie als Nächstes das DHPARAM-Zertifikat „dhparam.pem“ mit dem folgenden openssl-Befehl.

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.

Schritt 3 – Erstellen Sie den GitLab-Container

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

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

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

Unten sehen Sie das Ergebnis, das Sie erhalten.

Wechseln Sie als Nächstes in das Projektverzeichnis „~/gitlab“ und erstellen Sie den GitLab-Container mit dem Befehl „docker-compose“ weiter unten.

cd ~/gitlab
docker-compose up -d

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

Überprüfen Sie nun den laufenden Container und die "LISTEN"-Ports auf Ihrem Ubuntu-System mit dem folgenden Befehl.

docker-compose ps
ss -plnt

Und Sie erhalten den Container "gitlab_web_1 " läuft und Sie haben den HTTP-, HTTPS- und SSH-Port "2224", der vom GitLab-Container verwendet wird.

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

Schritt 4 – GitLab-Nachinstallation

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

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

Und Sie erhalten die GitLab-Seite zum Zurücksetzen des Passworts.

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

Jetzt erhalten Sie die GitLab-Anmeldeseite wie unten.

Melden Sie sich mit dem Standardbenutzer "root" an " und Ihr neues Passwort, und klicken Sie dann auf "Anmelden".

Und Sie erhalten das GitLab-Dashboard wie folgt.

Wie zu sehen ist, ist die GitLab-Installation mit Docker und Docker-Compose abgeschlossen.

Schritt 5 – Grundlegende Konfiguration des GitLab-Containers

Nach der GitLab-Installation können Sie dem GitLab-Container zusätzliche Konfigurationen hinzufügen, ohne den GitLab-Container zu zerstören. Für diesen Schritt zeigen wir Ihnen die grundlegende Art und Weise, den GitLab-Container zu verwalten.

Bevor Sie fortfahren, gehen Sie in das Projektverzeichnis „~/gitlab“ und überprüfen Sie den Containerstatus mit dem folgenden Befehl.

cd ~/gitlab
docker-compose ps

Sie erhalten, dass der GitLab-Container betriebsbereit ist.

Überprüfen Sie den GitLab-Dienststatus im Container

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

sudo docker exec -it gitlab_web_1 gitlab-ctl status

Unten sehen Sie das Ergebnis, das Sie erhalten.

Wie zu sehen ist, sind alle GitLab-Dienstkomponenten in Betrieb.

Zugriff auf GitLab-Container

Um per SSH zum GitLab-Container zu gelangen, verwenden Sie „docker exec“ mit der „bash“-Shell innerhalb des Containers wie unten gezeigt.

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 basierend auf einem Ubuntu 16.04 Xenial.

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 als Nächstes den standardmäßigen „Editor“ im Docker-Container selbst verwenden.

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

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

Jetzt erhalten Sie den standardmäßigen „nano“-Editor mit der Konfigurationsdatei „gitlab.rb“ auf dem Bildschirm.

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

Um die neuen Änderungen auf GitLab anzuwenden, starten Sie als Nächstes den Gitlab-Containerdienst mit dem folgenden 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 auf "Up (healty)" befindet " Zustand.

Als Ergebnis wurde die neue Konfiguration für GitLab angewendet.

Und schließlich ist die Installation von GitLab mit Docker und Docker-Compose erfolgreich abgeschlossen.


Ubuntu
  1. So installieren Sie Docker unter Ubuntu 22.04

  2. So installieren Sie Docker unter Ubuntu 22.04 / 20.04 LTS

  3. So installieren Sie ONLYOFFICE 8.9.0 mit Docker auf Ubuntu

  4. So installieren Sie Gitlab Server mit Docker unter Ubuntu 18.04 LTS

  5. So installieren Sie Docker unter Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

So installieren Sie WordPress mit Docker unter Ubuntu 16.04 LTS

So installieren Sie Rancher unter Ubuntu 16.04 LTS

So installieren Sie Docker unter Ubuntu 18.04 LTS

So installieren Sie Gitlab unter Ubuntu 18.04 LTS

So installieren Sie Docker unter Ubuntu 20.04 LTS

So installieren Sie Kitematic unter Ubuntu 20.04 LTS