Bereitstellung einer Container-Registry
Dieser Anwendungsfall skizziert die Notwendigkeit, eine integrierte Container-Registry innerhalb der git.nrw-Plattform bereitzustellen. Dies ermöglicht Entwickler*innen, Dozierenden und Studierenden, Container-Images als Teil ihrer CI/CD-Workflows zu erstellen, zu speichern, zu versionieren und zu verteilen, ohne auf externe, öffentliche Registries wie DockerHub angewiesen zu sein. Ermöglichung der nahtlosen Speicherung und Verteilung von Container-Images direkt innerhalb von GitLab, was moderne, sichere Softwareentwicklung erleichtert und Standard-Industrieworkflows lehrt.
Übersicht
Mehrwert: Dieser Anwendungsfall skizziert die Notwendigkeit, eine integrierte Container-Registry innerhalb der git.nrw-Plattform bereitzustellen. Dies ermöglicht Entwickler*innen, Dozierenden und Studierenden, Container-Images als Teil ihrer CI/CD-Workflows zu erstellen, zu speichern, zu versionieren und zu verteilen, ohne auf externe, öffentliche Registries wie DockerHub angewiesen zu sein. Ermöglichung der nahtlosen Speicherung und Verteilung von Container-Images direkt innerhalb von GitLab, was moderne, sichere Softwareentwicklung erleichtert und Standard-Industrieworkflows lehrt.
Problem: Die Notwendigkeit, eine sichere Container-Registry innerhalb der git.nrw-Plattform zu integrieren, damit Benutzer*innen Container-Images direkt speichern, versionieren und verteilen können, ohne von externen Registries abhängig zu sein.
Lösung: Ermöglichung der nahtlosen Speicherung und Verteilung von Container-Images direkt innerhalb von GitLab, was moderne, sichere Softwareentwicklung erleichtert und Standard-Industrieworkflows lehrt.
Wer profitiert
Primär
- Softwareentwickler*innen, Dozierende
Sekundär
- Studierende, Systemadministrator*innen
Wann geeignet
- Wenn Container-Images sicher innerhalb von GitLab CI/CD-Pipelines erstellt, versioniert und verteilt werden müssen.
Wann nicht geeignet
- Wenn externe Container-Registries bereits alle Projektanforderungen und Workflows erfüllen.
Prozess
- Ein*e Entwickler*in committet ein Dockerfile und eine .gitlab-ci.yml in sein/ihr Projekt.
- Die .gitlab-ci.yml enthält eine Build-Stage, die docker build verwendet, um ein Image zu erstellen.
- Das CI-Skript loggt sich unter Verwendung vordefinierter CI/CD-Variablen in die GitLab Container Registry ein.
- Das Skript pusht das neu erstellte und getaggte Image in die Registry.
- Endbenutzer*innen oder automatisierte Deployment-Systeme können das Image dann aus der Registry pullen, um die Anwendung auszuführen.
Voraussetzungen
Personen
- Dozierende
- Studierende
- IT-Personal
Daten-Inputs
- .gitlab-ci.yml
- Dockerfile, das das Container-Image definiert
Tools & Systeme
- GitLab CI/CD
- Docker
Richtlinien & Compliance
- GitLab-Zugriffskontroll- und Berechtigungsmodell
Risiken & Gegenmaßnahmen
-
Die Registry ist nicht verfügbar oder falsch konfiguriert. Die Pipeline schlägt fehl, was Entwickler*innen zwingt, externe öffentliche Registries zu verwenden oder den Workflow stoppt.
- Stakeholder umgehend benachrichtigen
- Manuelles Fallback-Verfahren bereitstellen
Erste Schritte
Voraussetzungen: Git-Zugriff und konfigurierte Tools/Systeme wie unten aufgeführt.
- Repository/Vorlage/Inhalt nach Bedarf vorbereiten
- Tools, Berechtigungen und Integrationen konfigurieren
- Workflow ausführen und Ergebnisse überprüfen
FAQ
Was ist der Vorteil der Verwendung der integrierten Registry?
Sie ermöglicht die sichere Speicherung und Verteilung von Container-Images direkt innerhalb von GitLab.
Können externe Registries weiterhin verwendet werden?
Ja, aber die interne Registry verbessert die Sicherheit und vereinfacht CI/CD-Workflows.
Glossar
- Container-Registry
- Ein Speicher- und Verteilungssystem für Container-Images.
- CI/CD
- Automatisierungsprozess zum Erstellen, Testen und Bereitstellen von Software.
- Docker
- Eine Plattform zum Entwickeln und Ausführen von Anwendungen in Containern.