Schritt 4
Ziel
Die simulierte Pipeline soll jetzt so angepasst werden, dass ein realitätsnäheres Szenario entsteht: Wir nehmen an, dass unser Softwareprojekt eine zentrale index.html
enthält, die der Einstiegspunkt für die Benutzung der Software durch die Enduser ist. Die index.html
des Softwareprojekts soll nach erfolgreichem Ausführen der Pipeline von einem Nginx-Server, der in einem Docker-Container läuft, ausgeliefert werden. Der Docker-Container läuft auf dem Entwicklungsrechner. Das ist ein zum Entwicklungszeitpunkt übliches Vorgehen. In realen Produktionsumgebungen gibt es weitere Pipelines, welche die Software in Docker-Container installieren, die wiederum auf den Produktivservern laufen. Beachten Sie, dass der Docker-Container nur einmal gestartet wird und durch die Pipeline die erforderlichen Dateien dann ersetzt werden. Der Container wird in unserem Beispiel also nicht durch die Pipeline erzeugt und gestartet.
Als index.html
nehmen wir die standardmäßig im Nginx enthaltene Datei. Es wird also keine neue index.html
im Projekt angelegt, sondern Sie finden heraus, wo die Dateien des Nginx standardmäßig liegen (s. u.).
Aufgabe
Starten Sie auf dem Laborrechner einen Nginx-Server in einem Docker-Container und prüfen Sie die Netzwerkausgabe. Finden Sie heraus aus welcher Datei die Ausgabe stammt und wie Sie diese manipulieren können. Vermutlich müssen Sie entsprechende Parameter in den Docker-Kommandos nutzen.
Erste wenn der Docker Container läuft und Sie die Konfiguration des Nginx verstanden haben: Ändern Sie die Pipeline so, dass Sie die Beispieldatei aus den vorhergehenden Schritten an eine geeignete Stelle im Container kopieren, wodurch sie vom Nginx als Startseite bereitgestellt wird. Es empfiehlt sich vor der Umsetzung komplexer Pipelines das Vorhaben lokal zu testen, sodass dieses nicht in einer Vielzahl von fehlgeschlagenen Pipelines ausufert.
Erstellen Sie für Ihre Arbeitsschritte ein Issue mit entsprechendem Titel und einer passenden Beschreibung. Arbeiten Sie dieses und alle weiteren Implementierungsschritte ebenfalls nach dem Schema des GitLab-Flow ab und dokumentieren Sie diese.
Sollte Ihre Pipeline aufgrund von Zugriffsrechten fehlschlagen: Bringen Sie in Erfahrung, wie der GitLab-Runner in Ihrem Ubuntu realisiert wird und beachten Sie die Anweisungen aus dem Docker Getting Started Guide