Site icon BintoroSoft PDF Tools

GitLab mit Docker Compose: Setup für Self-Hosting

GitLab ist eine umfassende Plattform für Versionskontrolle, CI/CD und DevOps. Mit Docker Compose lässt sich GitLab einfach selbst hosten, inklusive persistenter Daten, konfigurierter Ports, SSL und Backup-Möglichkeiten. Dieses Tutorial zeigt Schritt für Schritt, wie ein stabiler GitLab-Stack mit Docker Compose aufgesetzt wird.

Grundkomponenten eines GitLab-Stacks

Ein typischer GitLab-Stack besteht aus mehreren Diensten:

Volumes für Persistenz

Persistente Daten gewährleisten, dass Repositories, Konfigurationen und Logs bei Neustarts nicht verloren gehen.

volumes:
  gitlab_config:
  gitlab_logs:
  gitlab_data:
  redis_data:
  postgres_data:

Netzwerke für interne Kommunikation

Separate Netzwerke erhöhen die Sicherheit und gewährleisten die Erreichbarkeit der Dienste untereinander.

networks:
  gitlab_frontend:
  gitlab_backend:

Beispiel: docker-compose.yml für GitLab

version: '3.8'

services:
gitlab:
image: gitlab/gitlab-ee:16.1.0-ee.0
hostname: gitlab.example.com
restart: always
ports:
- "80:80"
- "443:443"
- "22:22"
volumes:
- gitlab_config:/etc/gitlab
- gitlab_logs:/var/log/gitlab
- gitlab_data:/var/opt/gitlab
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.example.com'
gitlab_rails['gitlab_shell_ssh_port'] = 22
networks:
- gitlab_frontend
- gitlab_backend
depends_on:
- postgres
- redis

postgres:
image: postgres:16
restart: always
environment:
POSTGRES_USER: gitlab
POSTGRES_PASSWORD_FILE: /run/secrets/postgres_password
POSTGRES_DB: gitlabhq_production
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- gitlab_backend
secrets:
- postgres_password

redis:
image: redis:7
restart: always
volumes:
- redis_data:/data
networks:
- gitlab_backend

secrets:
postgres_password:
file: ./postgres_password.txt

volumes:
gitlab_config:
gitlab_logs:
gitlab_data:
redis_data:
postgres_data:

networks:
gitlab_frontend:
gitlab_backend:

Erklärungen zur Compose-Datei

Start und Verwaltung des GitLab-Stacks

Den Stack starten Sie mit:

docker-compose up -d

Zum Stoppen und Entfernen aller Container, Netzwerke und Volumes:

docker-compose down -v

Best Practices

Praxisbeispiele

GitLab starten

docker-compose up -d

Logs überwachen

docker-compose logs -f gitlab
docker-compose logs -f postgres
docker-compose logs -f redis

Rollback auf vorherige GitLab-Version

docker service update --image gitlab/gitlab-ee:16.0.0-ee.0 gitlab_service

Updatefähigkeit

Durch die Nutzung von versionierten Docker Images kann GitLab unkompliziert aktualisiert werden, während Volumes und Secrets unverändert bleiben. Dies ermöglicht schnelle Updates ohne Datenverlust.

docker-compose pull
docker-compose up -d

Zusammenfassung

Ein GitLab-Stack mit Docker Compose ermöglicht Self-Hosting mit Sicherheit, Persistenz und Updatefähigkeit. Durch den Einsatz von Volumes, Secrets, getrennten Netzwerken und Best Practices wie Backups und Monitoring wird der Betrieb stabil, wartbar und skalierbar. CI/CD-Integration und versionierte Images erleichtern zukünftige Updates und Rollbacks.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version