Die Docker-Images der generierten Anwendung erstellen
Die Java-Programme: Entry und State
Der deterministische endliche Automat, auf dem die Anwendung basiert, wird unter anderem durch 2 Java-Programme repräsentiert.
-
Das Entry-Programm stellt die REST-Schnittstelle für die Entgegennahme von Anfragen in Form von Eingabestrings zur Verfügung, die zur Verarbeitung an den DEA übergeben werden.
-
Das State-Programm verarbeitet Schritt-für-Schritt die einzelnen Symbole des Eingabestrings. Dazu wird für jeden Zustand des DEA eine Instanz des State-Programms gestartet.
Wenn die generierte Anwendung mit Docker Compose oder Kubernetes ausgeführt werden soll, müssen Docker-Images für die beiden Java-Programme zur Verfügung stehen.
Erstellung der Docker-Images
Im Unterverzeichnis dockerbuild des Anwendungsprojektes befinden sich Dockerfiles zur Erzeugung der Docker-Images. Zum Aufruf des Build-Prozesses enthält das Unterverzeichnis außerdem eine CMD-Datei für die Eingabeaufforderung von Windows sowie eine SH-Datei für die Linux-Shell. Die Dateinamen basieren auf dem Anwendungsnamen, der bei der Generierung angegeben wurde:
dockerbuild-{anwendungsname}.cmd
dockerbuild-{anwendungsname}.sh
Öffnen Sie eine Konsole im Verzeichnis dockerbuild und rufen Sie die Script-Datei entsprechend Ihrem lokalen Betriebssystem auf, um den Build-Prozess zu starten.
Im Falle der Beispielanwendung für den Getränkeautomaten mit dem Namen BeverageVending lauten die Kommandos für die Erstellung der Docker-Images folgendermaßen:
dockerbuild> dockerbuild-beveragevending.cmd (1)
dockerbuild$ ./dockerbuild-beveragevending.sh (2)
-
Für Windows.
-
Für Linux.
Wenn Sie nach Abschluss des Build-Prozesses die vorhandenen Images mit dem Kommando docker image ls in der Konsole auflisten, sollte die Ausgabe im Fall der Beispielanwendung BeverageVending der folgenden ähneln:
dockerbuild> docker image ls -f "reference=*/beverage*" (1)
REPOSITORY TAG IMAGE ID CREATED SIZE
samples/beveragevending-state 0.1.0 4ef446099fac 23 seconds ago 264MB (2) (3)
samples/beveragevending-entry 0.1.0 b30509ccb209 28 seconds ago 266MB
-
Die Option -f "reference=*/beverage*" beschränkt die Ausgabe auf Images, die beverage im Namen enthalten.
-
Das Repository-Prefix (hier samples) entspricht dem Wert, der bei der Generierung angegeben wurde.
-
Die Werte für IMAGE ID und CREATED hängen von den aktuellen lokalen Gegebenheiten ab.