Es gibt mehr Möglichkeiten, Anwendungen auf Docker-Containern auszuführen. Die Startzeit ist wichtig, wenn Sie in einem Container arbeiten. Wenn Java ausgeführt wird, wird es auf der JVM ausgeführt, das Starten dieser JVM dauert jedoch einige Zeit.
Dieses Mal eingeführte Quarkus ist ein Framework, das einen schnellen Start durch Erstellen einer nativen Binärdatei mit GraalVM realisiert.
Von hier graalvm-ce-1.0.0-rc13-macos-amd64.tar.gz Bitte herunterladen (Stand 12. März 2019).
Entpacken Sie es und legen Sie den gesamten Ordner in / Library / Java / JavaVirtualMachines ab.
Legen Sie die Umgebungsvariable GraalVM (GRAALVM_HOME) fest.
.bash_profile
GRAALVM_HOME=/Library/Java/JavaVirtualMachines/graalvm-ce-1.0.0-rc13-macos-amd64/Contents/Home
$ mvn io.quarkus:quarkus-maven-plugin:0.11.0:create \
-DprojectGroupId=jp.acme \
-DprojectArtifactId=getting-started \
-DclassName="org.acme.quickstart.GreetingResource" \
-Dpath="/hello"
Durch Ausführen des obigen Befehls wird ein Maven-Projekt wie unten gezeigt erstellt.
#Starten Sie im Entwicklungsmodus
$ mvn compile quarkus:dev
Hot Reload kann durch Booten im Entwicklungsmodus erreicht werden. Überprüfen Sie den Vorgang mit dem folgenden Befehl.
$ curl http://localhost:8080/hello
$ mvn package -Pnative -Dnative-image.docker-build=true
Möglichkeit | Inhalt |
---|---|
-Pnative | Geben Sie an, wann eine nativ ausführbare Binärdatei generiert werden soll |
-Dnative-image.docker-build=true | Geben Sie an, wann eine native Binärdatei generiert werden soll, die dem Betriebssystem in Docker entspricht |
Da wir es diesmal auf Docker starten möchten, geben Sie auch `` -Dnative-image.docker-build = true``` an.
Das Erstellen wird einige Zeit dauern, wahrscheinlich weil native Binärdateien generiert werden.
$ docker build -f src/main/docker/Dockerfile -t <Bildname> .
$ docker run -i --rm -p 8080:8080 <Bildname>
2019-03-12 01:29:01,328 INFO [io.quarkus](main) Quarkus 0.11.0 started in 0.004s. Listening on: http://0.0.0.0:8080
2019-03-12 01:29:01,328 INFO [io.quarkus](main) Installed features: [cdi, resteasy]
Was Sie hier beachten sollten, ist die Startzeit. Wenn Sie das Protokoll nach dem Start überprüfen, wird "Quarkus 0.11.0 wurde in 0.004s gestartet" angezeigt. Mit anderen Worten, Sie können sehen, dass es in 0,004 Sekunden gestartet wurde. Es ist früh.
Durch die Verwendung von Quarkus wird die Anwendung auf dem Container überwältigend schneller gestartet. Quarkus selbst ist gerade herausgekommen, daher denke ich, dass es schwierig sein wird, es in der Produktion praktisch umzusetzen, aber wenn die Entwicklung voranschreitet und mehr Informationen verfügbar sind, wird es meiner Meinung nach mehr Möglichkeiten geben, es praktisch zu machen. Ich freue mich darauf in der Zukunft.
Sie können Quarkus auch Erweiterungen hinzufügen. Die Standardeinstellung ist beispielsweise Java EE-Standard-CDI, es kann jedoch Spring-basiertes CDI verwendet werden. Wir werden Informationen austauschen, während wir diesen Bereich untersuchen.
Recommended Posts