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

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!



Fragen / Kommentare


Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Nutzung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter. Details anzeigen.