14 Multi-Container-Applikation
Lerninhalt
Wir bauen uns die Jokes-DB (RefCard-03) containerisiert auf.
Problembeschreibung
Das eine ist der Build eines Images (dafür kennen wir nun das Dockerfile). Das andere ist die Ausführung der Container. Der Command docker run ... beinhaltet bald einige Parameter, die es zu dokumentieren gilt. Ganz IaC-Like brauchen wir eine YaML-Datei: docker-compose.yml!
Es existiert selbstverständlich eine Compose file version 3 reference.
Für die Ref-Card-03 Jokes-Datenbank-Springboot-Applikation haben wir die Basis eines docker-compose.yml für Sie bereitgestellt:
version: '3'
services:
database:
image: mariadb:10.9.2
ports:
- "3306:3306"
volumes:
- ./db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
MARIADB_DATABASE: jokedb
MARIADB_USER: jokedbuser
MARIADB_PASSWORD: 123456
phpmyadmin:
depends_on:
- database
image: phpmyadmin/phpmyadmin
ports:
- "8090:80"
environment:
PMA_HOST: database
Dieses beinhaltet die MariaDB und eine Container-Instanz mit PHPmyAdmin. Letztere ist von Ersterer abhängig.
Schau genau hin
Nehmen Sie sich etwas Zeit und schreiben Sie zu jeder Zeile einen kurzen Kommentar. Bei volumes sollten Sie zudem sich etwas mehr Zeit nehmen und die Auswirkungen dieses Teils studieren!
Aufgabe
-
Forken Sie das Projekt RefCard-03 und clonen sich das Ergebnis.
-
Das Projekt beinhaltet
pom.xmlundsrc. Äquivalent zur RefCard-01 builden Sie die Applikation entsprechend der Situation im Vorkapitel. Sie benötigen dafür einDockerfile.Java-Version
Beachten Sie die benötigte Java-Version für den Build. Sie finden diese in der pom.xml verzeichnet.
Java-Version upgraden
Seit September 2023 ist Java 11 EOL. Der Entwickler der Jokes-DB behauptet jedoch, dass die Applikation auch mit Java Version 17 funktionieren würde. Passen Sie also die Version im
pom.xmlan und schauen Sie, ob der Entwickler recht behält. Vorteil: Sie können dann die gleichen Images verwenden wie bei derRefCard-01. -
Im README finden Sie Hinweise, wie diese Applikation, sobald builded, gestartet werden kann. Nutzen Sie diese, um die
docker-compose.ymlzu ergänzen. -
Sie haben das Projekt geforkt, damit Sie es sich später wieder ins gitlab pushen können. Womöglich gelingt Ihnen dieser Schritt erst nach dem nächsten Kapitel.
Lernerfolg
Sie haben mit Docker-Compose eine (eigentlich zwei) Applikation mit 3-Tier-Architektur in Betrieb genommen.