GIT-Repositories selbst hosten: GitLab als Docker-Container starten


Wer seine GIT-Repositories selbst hosten will, findet mit GitLab eine Alternative zu GitHub. GitLab bietet eine komfortable Weboberfläche für das Verwalten,  Bearbeiten und Deployment von GIT-Projekten.

Docker Basics

Docker ermöglicht es, Applikationen per Befehl in einem sogenannten Container zu starten.
Ein Container ist eine vom Betriebssystem (OS) unabhängige isolierte Umgebung:
Das OS spielt also keine Rolle, vorausgesetzt Docker lässt sich installieren.
Beim ersten Start eines Containers, lädt Docker selbstständig alle notwendigen Quellen
aus dem Internet.
Docker kann unter Windows, macOS oder einer Linux-Distribution installiert werden,
siehe auch: Docker

Dank Docker ist die Installation in wenigen Minuten startklar. Es sollte allerdings genügend freier Arbeitsspeicher vorhanden sein, denn im Betrieb beschlagnahmt GitLab ca. 4GB und zudem ständig etwas CPU im Hintergrund. Dabei reagiert die Weboberfläche auf meiner NAS etwas träge, daher habe ich GitLab mittlerweile mit Gitea ersetzt, siehe: Gitea Inbetriebnahme. Für größere Teams mit performanter Hardware bietet GitLab mehr Features als Gitea, speziell Richtung Integration und Delivery: CI/CD.

Damit GitLab ein kostenloses Letsencrypt SSL Zertifikat bekommt, wird für das Beispiel folgendes Setup vorausgesetzt: nginx-LetsEncrypt Reverse Proxy in der Praxis

Schritt für Schritt

Docker und Let's Encrypt Reverse-Proxy:

  1. Hardware auswählen: PC, Notebook oder besser: virtueller Server, Raspberry PI oder eine NAS: QNAP, Synology oder Eigenbau-NAS
  2. OS installieren: Windows, Linux
  3. Docker installieren, siehe: Docker
  4. DNS-Eintrag im Internet auf die öffentliche IP-Adresse erstellen und
    nginx-Reverse Proxy Setup: nginx-LetsEncrypt Reverse Proxy in der Praxis

Container für GitLab:

  1. docker-compose.yml anlegen
  2. Container starten

docker-compose.yml

Beim Einsatz der folgenden docker-compose.yml Datei, muss nur noch die verwendete Domain und Email-Adresse angepasst werden:

[+]
version: '3'
services:
 web:
  image: 'gitlab/gitlab-ee:latest'
  restart: always
  hostname: 'gitlab.domain.tld'
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'https://gitlab.domain.tld'
      nginx['listen_port'] = 80
      nginx['listen_https'] = false
      nginx['proxy_set_headers'] = {
      	"X-Forwarded-Proto" => "https",
      	"X-Forwarded-Ssl" => "on"
      }
    VIRTUAL_HOST: 'gitlab.domain.tld'
    VIRTUAL_PORT: '80'
    LETSENCRYPT_HOST: 'gitlab.domain.tld'
    LETSENCRYPT_EMAIL: 'mail@domIn.tld'
  expose:
      - "80"
  volumes:
    - './config:/etc/gitlab'
    - './logs:/var/log/gitlab'
    - './data:/var/opt/gitlab' 
  restart: always

networks:
  default:
    external:
      name: webproxy

Vor dem Start werden noch die Ordner config, logs und data benötigt. Der Befehl docker-compose up -d startet Gitlab:

mkdir config
mkdir logs
mkdir data
docker-compose up -d

Beim ersten Start kann über die Weboberfläche ein root-Kennwort vergeben werden.

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!


Top-Artikel in diesem Bereich

Preview ioBroker installieren - Docker

ioBroker installieren - Docker

geändert: 12.11.2020 von Bernhard (Erstveröffentlichung: 06.11.2020)

Mit ioBroker können verschiedene Automatisierungslösungen oder Geräte in einem System zusammengefasst werden. Um bestimmte Gateways oder Geräte ansprechen zu können, werden in ioBroker verschiedene Adapter verwendet.  ... weiterlesen

Preview Home-Assistant Docker Conbee 2 und Zigbee2MQTT / deCONZ

Home-Assistant Docker Conbee 2 und Zigbee2MQTT / deCONZ

geändert: 09.03.2022 von Bernhard (Erstveröffentlichung: 06.11.2020)

Dank zahlreicher Integrationsmöglichkeiten ist Home-Assistant eine einfache Plattform für das Steuern verschiedenster Smart-Home Geräte. Im Vergleich zu ioBroker ist mir der Start mit Home Assistant wesentlich einfacher gefallen. Während ich für ioBroker noch am Suchen war, welches Frontend ich für meine Dashboards verwenden könnte, hatte ich mit Home-Assistant Out of the box ein fertig eingerichtetes System. Die Lovelance Dashboards von Home Assistant können einfach in der GUI zusammengeklickt... ... weiterlesen

Bitwarden in Docker betreiben - Setup Schritt für Schritt

Bitwarden in Docker betreiben - Setup Schritt für Schritt

erstellt: 28.02.2022 von Bernhard

Bitwarden ist ein webbasierter Passwort-Manager, ähnlich LastPass, aber Open Source und der Möglichkeit diesen selbst zu betreiben (hosten). Wie sich Bitwarden im Vergleich zu anderen Passwortmanagern einordnet, habe ich auf folgender Seite überlegt: Passwortmanager sicher? KeePass vs. LastPass vs. Bitwarden. ... weiterlesen


Fragen / Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details