Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Begriffserklärung

Docker

Docker ist ein Open-Source Projekt, das dazu dient Software in einer isolierten Umgebung - einem sogenannten Container - auszuführen. Das heißt, Software die innerhalb von einem Container ausgeführt wird teilt sich die Basisfunktionalität des eigentlichen Betriebssystemes, ist aber ansonsten was das Dateisystem und den Arbeitsspeicher angeht von dem restlichen Betriebssystem und anderen Containern isoliert. Das bietet den Vorteil, dass Software die innerhalb eines Docker-Containers ausgeführt wird, immer in einer fest definierten Umgebung mit fest definierten und installierten Abhängigkeiten ausgeführt wird.

Der Docker-Host, der notwendig ist um Docker-Container auszuführen, kann auf jedem beliebigen Linux, Windows oder Mac OSX Server installiert werden. Da jedoch immer eine Linux “Zwischenschicht” notwendig ist, ist ein Linux Server zu empfehlen. Weitere Informationen zur Installation von Docker find Sie hier: https://docs.docker.com/engine/install/

Docker Container

Docker bietet eine Vielzahl von vordefinierten Containern für bestimmte Anwendungszwecke. Diese Container werden oft von den Entwicklern einer Software selbst gepflegt. Beispielsweise gibt es einen offizielles Container-Abbild von Postgres, in dem die gleichnamige Datenbank ausgeführt wird. Um einen Docker Container zu konfigurieren exponiert dieser ein vordefiniertes Set von Einstellungen, die von außen an den Container weitergegeben werden können.

Docker Compose

Mit der Beschreibungssprache “Docker Compose” kann konfiguriert werden, wie eine Anwendung, die aus mehreren Docker Containern besteht, aufgebaut ist. Hier ist beispielsweise definiert, welche Container inkl. ihrer Konfiguration für die gesamte Anwendung ausgeführt werden müssen, wie die Container miteinander in einem virtuellen Netzwerk kommunizieren, welche Dateien vom Host-System im Container zur Verfügung stehen sollen und welche Passwörter verwendet werden sollen.

Installationsbundle

Unser Installationsbundle für den Kommentierungsserver besteht aus mehreren Dateien:

.env

In dieser Datei werden Umgebungsvariablen festgelegt, die definieren unter welchem SSL-Port die Anwendung laufen soll und wie die Dateien heißen, in denen das (von Ihnen für Ihre Domain bereitgestellte) SSL Zertifikat und der SSL Key liegen.

*_password.txt

In drei Dateien, die mit “_password.txt” enden, wird festgelegt, welche Passwörter (initial) für die User-Datenbank, Kommentar-Datenbank und den globalen Administrator-User verwendet werden sollen.

config.properties

Hier werden Einstellungen für unseren Kommentierungsserver festgelegt. Aktuell findet dort die Konfiguration des SMTP Mail-Servers statt, der dazu verwendet wird Benachrichtigungsemails zu versenden, wenn ein Benutzer in einem Kommentar erwähnt wurde.

init-*-db.sql

Die Initialisierung der Postgres Datenbanken mit einer neuen Datenbank ist hier definiert. Hier ist vom Benutzer nichts anzupassen.

nginx.conf

In der Konfigurationsdatei befindet sich die Definition, wie der NGINX Reverse Proxy die Anfragen gegen das Kommentierungsbackend an die einzelnen Docker Container weiterleiten soll. Hier ist in der Regel vom Benutzer nichts anzupassen.

docker-compose.yaml

Die Definition welche Container für das Kommentierungsbackend erstellt werden müssen, welche Dateien vom Host-System verwendet werden dürfen und wie das interne Netzwerk aufgebaut ist muss in der Regel nicht angepasst werden.

commenting.war

In dieser Datei liegt die Logik für das Kommentierungsbackend, sie wird automatisch in dem Tomcat-Container in Docker installiert.

Installationsvorgang

  1. Installieren Sie Docker wie hier beschrieben: https://docs.docker.com/engine/install/

  2. Entpacken Sie das Installationsbundle und die Dateien aus dem Installationsbundle kopieren Sie auf das Docker-Hostsystem an einen beliebigen Ort.

  3. Sie fügen Ihr SSL Zertifikat mit dem Dateinamen “ssl_certificate.crt” und den dazugehörigen privaten Schlüssel mit dem Dateinamen “ssl_certificate.pem” an dem selben Ort wie in Schritt 1 ein. Bei unterschiedlichen Pfaden oder Dateinamen, muss die Datei “.env” angepasst werden.

  4. Wenn sie einen anderen Port als “3333” für den Server verwenden möchten, so passen Sie die in der Datei “.env” an.

  5. In den zwei mit “_db_password.txt” endenden Dateien definieren Sie die Passwörter für die beiden Datenbanken der Userverwaltung und der Kommentarablage. Diese werden intern an die entsprechenden Container übermittelt.

  6. In der Datei “keycloak_admin_password.txt” definieren Sie das Passwort für den Administrator des Kommentarbackends. Dieser besitzt die Berechtigung Kommentare zu lesen, zu schreiben, zu bearbeiten, zu löschen und neue Benutzer zu definieren. Sie benötigen dessen Passwort also um sich initial in unsere Komponenten und die Verwaltungsoberfläche einzuloggen. Der Benutzername lautet hier “admin”. Neu angelegten Benutzern können dann die Rollen “viewer”, “editor” oder “admin” zugewiesen werden.

  7. Ist die Konfiguration vollständig, so können Sie in der Kommandozeile in dem Ordner des Installationsbundles den Befehl “docker-compose up” ausführen. Damit werden alle benötigten Komponenten gestartet.

  • No labels