In diesen Labs werden wir Applikationen entwickeln.
Folgen Sie den Anweisungen im Lab 4: Ein Container Image deployen.
In dieser Aufgabe werden wir die Applikation von vorher über https vom Internet her erreichbar machen.
Folgen Sie den Anweisungen im Lab 5: Unseren Service mittels Route online verfügbar machen.
Folgen Sie den Anweisungen im Lab 6: Pod Scaling, Readiness Probe und Self Healing.
Folgen Sie den Anweisungen im Lab 9: Datenbank anbinden.
Ziel ist es eine Java Spring Boot Applikation lokal zu bauen und mittels Binary Build auf die Plattform zu bringen.
- Siehe dazu das Binary Build Beispiel des Labs dev-labs/02_builds.md.
- GitHub Repository mit dem Sourcecode: https://github.com/appuio/example-spring-boot-helloworld
- Docker Hub Repository mit Java Docker Image: https://hub.docker.com/r/fabric8/java-centos-openjdk11-jdk/
Neues Projekt mit dem Namen [USERNAME]-spring-boot
erstellen.
Tipp
oc new-project [USERNAME]-spring-bootZuerst das GitHub Repository klonen oder als Zip-Datei laden und danach das Spring Boot Jar bauen.
Git Clone Befehl
git clone https://github.com/appuio/example-spring-boot-helloworld.gitDanach die Applikation bauen, es wird nur das JDK 11 benötigt.
Applikation bauen
cd example-spring-boot-helloworld/./gradlew build
Applikation bauen (auf Windows)
ins Verzeichnis example-spring-boot-helloworld wechselngradlew.bat build
Für den Binary Build eine Verzeichnisstruktur vorbereiten mit dem Jar vom Java Build.
- Verzeichnis:
tmp-jar/deployments
- Datei: build/libs/springboots2idemo-0.0.1-SNAPSHOT.jar
Befehle für Shell und PowerShell:
mkdir -p tmp-jar/deployments
cd tmp-jar
cp ../build/libs/springboots2idemo-0.0.1-SNAPSHOT.jar deployments/
Dockerfile mit diesem Inhalt erstellen.
FROM fabric8/java-centos-openjdk11-jdk
COPY deployments/*.jar deployments/
EXPOSE 8080
Builden und starten.
docker build -t boot .
docker run -ti -p 8080:8080 boot
Applikation ist unter http://localhost:8080 erreichbar.
Dockerfile Build im OpenShift erstellen.
oc new-build -D $'FROM fabric8/java-centos-openjdk11-jdk\nCOPY deployments/*.jar deployments/\nEXPOSE 8080' --to spring-boot
Wie ist der Name des ImageSteam, in welchen das gebaute Image gepushed wird?
Binary Build starten mit dem Inhalt aus diesem Ordner.
Tipp
oc start-build spring-boot --from-dir=. --followApplikation anhand des Image Stream erstellen mit dem Label app=spring-boot
.
Tipp
oc new-app spring-boot -l app=spring-bootDen Service der Applikation als Route exposen.
Tipp
oc create route edge --service=spring-boot --port=8080Wieso müssen wir hier den Port angeben?
Im Browser oder mit curl das Funktionieren der Applikation überprüfen.
Folgen Sie den Anweisungen im Lab 11: Code Changes durch Webhook triggern Rebuild auf OpenShift.