Abgabe 9 (Finale Abgabe)
Deadline: 27.01.2025
Aufgaben
- Vollständige Anwendung mit Deployment auf Coolify
Videos
Deployment
Bevor dein erstes Deployment durchgeführt werden kann, sprich uns bitte direkt an. Wir geben dir dann einen Link zum Registrieren deines Coolify-Accounts und einen für dich reservierten Port.
Vorbereitung
Um ein autoamtisiertes Deployment einzurichten, muss dein Code vorbereitet werden. Folgende Schritte sind durchzuführen, bevor du deie Applikation über Coolify mit anderen Teilen kannst.
1. Containerisieren
Erstelle im obersten Verzeichnis deines Projekts eine Datei mit dem Namen Dockerfile
. Füge dort folgende Zeilen Code ein und achte darauf, dass du {DEIN_PORT} mit dem dir zugewiesenen Port austauschst.
FROM gradle:8.5.0-jdk17 AS build
COPY --chown=gradle:gradle . /home/gradle/src
WORKDIR /home/gradle/src
RUN gradle build --no-daemon
FROM eclipse-temurin:17-jre
EXPOSE {DEIN_PORT}
RUN mkdir /app
COPY --from=build /home/gradle/src/build/libs/*.jar /app/spring-boot-application.jar
ENTRYPOINT ["java","-Dspring.profiles.active=prod","-jar","/app/spring-boot-application.jar"]
2. Port anpassen
Jetzt wo der korrekte Port im Dockerfile hinterlegt ist, muss noch die Spring-Applikation auf diesen Port umgestellt werden. Füge dafür in deinerapplication.properties
-Datei folgende Zeile code hinzu. Achte auch hier bitte darauf, deinen Port einzutragen.server.port={DEIN_PORT}
3. Push auf GitLab
Da Coolify direkt auf dein Git-Repository zugreifen wird, müssen alle Änderungen mit dem GitLab-Server synchronisiert werden. Pushe deshalb alle Änderungen via git push
.
Coolify
Coolify ist eine Software, die sich um das Bereitstellen von Software auf Servern kümmert. In diesem Fall sollen unsere selbst entwickelten Applikationen bereitgestellt werden. Dafür sind folgende Schritte durchzuführen:
1. Login
Du meldest dich über diesen Link auf unserer Coolify-Instanz an. Beachte bitte, dass du dafür mit dem Hochschulnetz/Eduroam verbunden sein musst.
Logge dich dort mit deinem Benutzernamen und Passwort an. Solltest du noch keinen Zugang zu Coolify erhalten haben, wende dich bitte an das Team.
Wähle in der oberen Linken Ecke bei Current Team das für GDW angelegte Team GDW - WS2024. Dort stehen dir alle Ressourcen zu Verfügung, die in diesem Projekt benötigt werden.
2. GitLab Authentifizierung einrichten
Damit Coolify direkt von deinem GitLab-Repository deployen kann, muss eine entsprechende Authentifizierung konfiguriert werden. Dafür kannst du in Coolify in der linken Navigationsleiste auf Keys & Tokens klicken. Lege dort mit der +Add-Schaltfläche ein neues SSH-Schlüsselpaar an. Generiere mithilfe von Generate new RSA SSH Key ein neues Schlüsselpaar. Achte auf eine sinnvolle Benennung, damit du den Schlüssel später wiederfindest. Wir empfehlen dir gitlab-{vorname}-{nachname}. Kopiere den Public-Key in deine Zwischenablage, um ihn anschliessend bei GitLab zu hinterlegen.
Hinterlege den Schlüssel mithilfe der Add new kew-Schaltflaeche in den User settings auf GitLab. Dieser Link führt dich direkt dortin. Dieser Schritt ist äquivalent zum Berechtigen deines Rechners auf GitLab nur, dass in diesem Fall nicht dein Rechner, sondern der Server Berechtigungen erhält.
3. Anlegen eines neuen Projekts
In Coolify werden deine Deployments unter Projekten verwaltet. Das bietet den Vorteil, dass zusammenhängende Deployments (z.B. mehrere Docker Container, die verschiedene Dienste in deiner Lösung anbieten) gemeinsam verwaltet werden können.
Um ein neues Projekt anzulegen, navigieren in Coolify zur Seite Projects. Klicke dort auf die Schaltfläche + Add. Gebe deinem Projekt den gleichen Namen, wie dein Git-Repository. Das hat ausschließlich den Grund, dass anschließend dein Deployment dem Git-Repository zugeordnet werden kann. Technisch ist der Name frei wählbar.
Gebe bei Bedarf noch eine Beschreibung ein und bestätige anschließend mit Continue. Das Projekt wird angelegt und erhält automatisiert eine Umbegung (Environment) production. Diese stellt den produktiven also veröffentlichten Zustand deiner Applikation dar. Bei Bedarf kann zusätzlich eine Testumgebung erstellt werden, auf der Testerinnen und Tester neue Funktionalitäten testen können, bevor diese an alle User in production ausgerollt werden.
4. Anlegen der Ressource
Ressourcen in Coolify sind Dienste, die Speicherplatz und/oder Rechenkapazität eines Servers für deine Zwecke bereitstellen. Das können beispielsweise die Kapazitäten sein, die für das Ausführen deiner Applikation benötigt werden. Um eine neue Ressource zu erstellen, navigiere in deine Umegbung production und erstelle dort eine neue Ressource mit + Add New Resource. Wähle hier die Vorlage Private Repository (with Deploy Key), um direkt dein GitLab-Repository zu verknüpfen. Als privater Schlüssel muss jetzt dein in 2. GitLab Authentifizierung einrichten eingerichteter Schlüssel ausgewählt werden. Gebe deine Repository-URL und den Branch an, der von Coolify bereitgestellt werden soll. Wähle unter Build Pack die Option Dockerfile, damit dein Dockerfile für das Deployment verwendet wird.