Bis Sie Quarkus ausführen und Docker-Image auf Amazon ECS ausführen

Eine andere Seite

Ich habe es geschrieben, aber es ist vorbei, also bin ich zu Artikel 5 übergegangen 16.03.2019

Quarkus Java Framework. Als Feature generiert es eine native Binärdatei und startet sehr schnell.

Voraussetzungen

Scheint zu sein

GraalVM Installieren Sie GraalVM Set in .bash_profile etc.

export GRAALVM_HOME=[Installationsordner]/Contents/Home

Neues Projekt

Führen Sie den Befehl zur Projekterstellung gemäß der Formel von [Quarkus] aus (https://quarkus.io/ "Quarkus").

mvn io.quarkus:quarkus-maven-plugin:0.11.0:create \
-DprojectGroupId=org.acme \
-DprojectArtifactId=getting-started \
-DclassName="org.acme.quickstart.GreetingResource" \
-Dpath="/hello"

Implementierung

Erstellt gemäß der offiziellen Startanleitung Die Quelle ist standardmäßig enthalten, sodass sie so funktioniert, wie sie ist Offiziell heißt es, dass wir eine API oder ähnliches hinzufügen werden, also werden wir es so machen, wie es ist Es ist wichtig, die Befehle beim Bewegen zu verstehen

Lokaler Start

mvn compile quarkus:dev

Glas Kreation

mvn package

Glas starten

java -jar target/getting-started-1.0-SNAPSHOT-runner.jar

Native binäre Erstellung

mvn package -Pnative

Nativer binärer Start

./target/quarkus-quickstart-runner

Containererstellung

mvn package -Pnative -Dnative-image.docker-build=true

Docker bauen

docker build -f src/main/docker/Dockerfile -t quarkus .

run

docker run -i --rm -p 8080:8080 quarkus

Es funktionierte genauso für Local, Jar, Binary und Docker

$ curl http://localhost:8080/hello/greeting/quarkus
hello quarkus

Bereitstellung auf AWS-Seite

Nachdem wir das Docker-Image erstellt haben, werden wir es in AWS ECS bereitstellen.

ECR-Erstellung

Erstellen Sie ein neues Repository mit dem Namen "quarkus"

Bildschub

Führen Sie den Befehl gemäß "Push-Befehl anzeigen" des erstellten Repositorys aus

aws ecr get-login --no-include-email --region ap-northeast-1

##Ein Anmeldebefehl wird ausgegeben, führen Sie ihn also so aus, wie er ist

##
docker tag quarkus:latest xxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/quarkus:latest

## push
docker push xxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/quarkus:latest

Erfolg, wenn auf ECR gedrückt

Aufgabenerstellung

Erstellen von Aufgabendefinitionen aus ECS Erstellen Sie, indem Sie im Bild eingeben, was in ECR definiert ist Es mag gut sein, mit EXPOSE in der Docker-Datei zu spielen, aber es scheint, dass der Standard 8080 ist. Die Portzuordnung ist auf 80 80 80 eingestellt

570dbdee79d13c11f76eb76746411c12.jpg

462c242304492b7be7726ee289ea0451.jpg

4b566c405019460beb9fc6ea122a3293.jpg

Clustererstellung

Wählen Sie, um einen Cluster zu erstellen Erstellen Sie mit EC2, indem Sie den Instanztyp und die Anzahl der Instanzen frei auswählen Matsu bis EC2 aktiv wird a9d948c74ad61c6ba18018c1f59b8730.jpg

Aufgabenausführung

Wählen Sie auf der Registerkarte Aufgaben die Option Aufgabe ausführen aus 10208d5eaa7026ca42782fa2915af10d.jpg

Warten Sie eine Weile und es wird RUNNING 670d7cf11665e5b5b8a996b5d126f51c.jpg

Geben Sie die Instanz mit ssh ein und überprüfen Sie Bei 80 empfangen und 8080 zugeordnet

$ docker container ls
CONTAINER ID        IMAGE                                                       COMMAND                  CREATED             STATUS              PORTS                  NAMES
29c1fb97dc07        xxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/quarkus   "./application -Dqua…"   9 seconds ago       Up 8 seconds        0.0.0.0:80->8080/tcp   ecs-quarkus-5-quarkus-e491bef2eefec1fcfc01
0187c98c619b        amazon/amazon-ecs-agent:latest                              "/agent"                 About an hour ago   Up About an hour                           ecs-agent

Verbindungsbestätigung

Vom Browser aus gesehen

http://[Öffentliches EC2-DNS]/hello/greeting/quarkus

69be9989a2ab0cf1959a48784034d466.jpg

Es wurde angezeigt!

Impressionen

Quarkus startete so schnell, dass es sich anfühlte, als würde es bereits laufen. Normalerweise benutze ich Java, aber ich habe versprochen, dass der Start lange dauern würde, also ist es ziemlich frisch. Die Erstellung von ECS hat zunächst einige Zeit in Anspruch genommen, aber ich bin froh, dass ich es geschafft habe Es war schwer zu verstehen, was ein Cluster oder eine Aufgabe war. .. .. Wenn Sie danach bei der Portzuordnung zuerst eine dynamische Zuordnung durchführen, wird der Port verschoben und funktioniert nicht mehr. .. .. Beim Aktualisieren

Ich frage mich, ob es sich anfühlt

Recommended Posts

Bis Sie Quarkus ausführen und Docker-Image auf Amazon ECS ausführen
Bis Sie Apache mit Ubuntu auf Docker ausführen
Aktivieren Sie den Build-Cache von Docker in GitHub Action und stellen Sie ihn auf Amazon ECS bereit
Bis ich versuche, Apache Kafka mit Docker-Image auszuführen
Führen Sie Rubocop und RSpec auf CircleCI aus und stellen Sie es in ECS bereit
SSH in Ubuntu auf der VirtualBox Ihres Mac und tun Sie dies, bis Sie Docker installieren
Bis Sie nginx unter CentOS mit Docker unter Mac OS starten
Führen Sie openvpn unter Docker aus (Windows)
Bis die Docker-Umgebung erstellt und der Ubuntu-Container gestartet und gestoppt wurde
Erstellen Sie ein Docker-Image für redoc-cli und registrieren Sie es auf Docker Hub
[GCP] Bis Sie das lokale Docker-Image in die Container-Registrierung verschieben
Installieren Sie openjdk8 auf dem Docker-Image (Debian).
Schritte zum Ausführen von Docker auf einem Mac
Führen Sie Puppeteer-Core auf Heroku aus (Docker Edition)
Führen Sie die AWS CLI in Docker aus
So führen Sie JavaFX unter Docker aus
Stellen Sie das Docker-Image von Flask in Heroku bereit
Führen Sie PureScript auf einem Docker-Container aus
2. Erstellen Sie ein Docker-Image und registrieren Sie die Registrierung
Wenn Sie mit PHPStorm und xdebug auf Docker stecken bleiben. Fehlerbehebung
Veröffentlichen Sie das Docker-Image in der GitHub-Paketregistrierung
Installieren Sie Docker und Docker-Compose unter Alpine Linux
Passen Sie OpenFOAM v8 Docker Image auf dem Mac an
Führen Sie NordVPN im Docker (Windows) Ubuntu-Container aus
Lassen Sie uns jetzt Servlet mit Amazon Corretto ausführen
Führen Sie SystemSpec (RSpec) und Rubocop auf CircleCI aus
Führen Sie Ubuntu + ROS mit Docker auf dem Mac aus
Führen Sie die Docker-Umgebung Rails MySQL auf Heroku aus. Entwickeln und verstecken Sie die Twitter-API