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.

Idea
Plan
Prototype
Pilot
Live

Ü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

  1. Ein*e Entwickler*in committet ein Dockerfile und eine .gitlab-ci.yml in sein/ihr Projekt.
  2. Die .gitlab-ci.yml enthält eine Build-Stage, die docker build verwendet, um ein Image zu erstellen.
  3. Das CI-Skript loggt sich unter Verwendung vordefinierter CI/CD-Variablen in die GitLab Container Registry ein.
  4. Das Skript pusht das neu erstellte und getaggte Image in die Registry.
  5. 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.

  1. Repository/Vorlage/Inhalt nach Bedarf vorbereiten
  2. Tools, Berechtigungen und Integrationen konfigurieren
  3. 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.