Jusqu'à ce que vous exécutiez Quarkus et que vous exécutiez l'image docker sur Amazon ECS

Un autre site

Je l'ai écrit, mais c'est fini, alors je suis passé à l'article 5 16/03/2019

Quarkus Framework Java. En tant que fonctionnalité, il génère un binaire natif et démarre très rapidement.

Conditions préalables

--Java 8 et supérieur --Maven 3.5.3 et supérieur

Semble être

GraalVM Installez GraalVM Définir dans .bash_profile etc.

export GRAALVM_HOME=[Dossier d'installation]/Contents/Home

Nouveau projet

Exécutez la commande de création de projet selon la formule de Quarkus

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

la mise en oeuvre

Créé selon le guide de départ officiel La source est incluse par défaut, elle fonctionne donc telle quelle Officiellement, il est dit que nous allons ajouter une API ou quelque chose comme ça, donc nous le ferons tel quel Il est important de comprendre les commandes lors du déplacement

Lancement local

mvn compile quarkus:dev

création de pot

mvn package

début de pot

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

Création binaire native

mvn package -Pnative

Lancement binaire natif

./target/quarkus-quickstart-runner

Création de conteneurs

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

construction de docker

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

run

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

Cela fonctionnait de la même manière pour local, jar, binary et docker

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

Déployer du côté AWS

Maintenant que nous avons créé l'image docker, nous allons la déployer sur AWS ECS.

Création ECR

Créez un nouveau référentiel avec le nom "quarkus"

Poussée d'image

Exécutez la commande selon "Afficher la commande push" du référentiel créé

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

##Une commande de connexion sera émise, alors exécutez-la telle quelle

##Marquer l'image créée
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

Succès si poussé sur ECR

Création de tâches

Création de définitions de tâches à partir d'ECS Créer en entrant ce qui est défini dans ECR dans l'image Il peut être bon de jouer avec EXPOSE dans le Dockerfile, mais il semble que la valeur par défaut soit 8080. Le mappage des ports est défini sur 80 80 80

570dbdee79d13c11f76eb76746411c12.jpg

462c242304492b7be7726ee289ea0451.jpg

4b566c405019460beb9fc6ea122a3293.jpg

Création de cluster

Choisissez de créer un cluster Créez avec EC2 en sélectionnant librement le type d'instance et le nombre d'instances Matsu jusqu'à ce que EC2 devienne actif a9d948c74ad61c6ba18018c1f59b8730.jpg

Exécution des tâches

Sélectionnez Exécuter la tâche dans l'onglet Tâches pour exécuter 10208d5eaa7026ca42782fa2915af10d.jpg

Attendez un moment et il deviendra en cours d'exécution 670d7cf11665e5b5b8a996b5d126f51c.jpg

Entrez l'instance avec ssh et vérifiez Reçu à 80 et mappé à 8080

$ 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

Confirmation de connexion

Vu du navigateur

http://[DNS public EC2]/hello/greeting/quarkus

69be9989a2ab0cf1959a48784034d466.jpg

C'était affiché!

Impressions

Quarkus a démarré si rapidement qu'il avait l'impression de fonctionner déjà. J'utilise habituellement Java, mais j'ai promis que cela prendrait beaucoup de temps pour démarrer, donc c'est assez récent. ECS a mis du temps à créer au début, mais je suis content d'avoir réussi à le faire Il était difficile de comprendre ce qu'était un cluster ou une tâche. .. .. Après cela, au mappage du port, si vous effectuez un mappage dynamique au début, le port se déplacera et cela ne fonctionnera pas. .. .. Lors de la mise à jour

--Écrire Java

Je me demande si c'est comme

Recommended Posts

Jusqu'à ce que vous exécutiez Quarkus et que vous exécutiez l'image docker sur Amazon ECS
Jusqu'à ce que vous exécutiez apache avec ubuntu sur docker
Activer le cache de construction de Docker dans GitHub Action et déployer sur Amazon ECS
Jusqu'à ce que j'essaye d'exécuter Apache Kafka avec une image docker
Exécutez Rubocop et RSpec sur CircleCI et déployez-le sur ECS
SSH dans Ubuntu sur VirtualBox de votre Mac et faites-le jusqu'à ce que vous installiez Docker
Jusqu'à ce que vous démarriez nginx sur CentOS en utilisant Docker sur Mac OS
Exécutez openvpn sur Docker (Windows)
Jusqu'à ce que l'environnement docker soit créé et que le conteneur Ubuntu soit démarré et arrêté
Créez une image Docker pour redoc-cli et enregistrez-la sur Docker Hub
[GCP] Jusqu'à ce que vous transmettiez l'image Docker locale à Container Registry
Installez openjdk8 sur l'image Docker (Debian)
Étapes pour exécuter Docker sur Mac
Exécutez puppeteer-core sur Heroku (édition Docker)
Exécutez l'AWS CLI sur Docker
Pour exécuter JavaFX sur Docker
Déployer l'image Docker de Flask sur Heroku
Exécuter PureScript sur un conteneur Docker
2. Créez une image Docker et enregistrez le registre
Si vous êtes bloqué avec PHPStorm et xdebug sur docker. dépannage
Publier l'image Docker dans le registre de packages GitHub
Installez docker et docker-compose sur Alpine Linux
Personnaliser l'image Docker OpenFOAM v8 sur Mac
Exécutez NordVPN dans le conteneur Ubuntu Docker (Windows)
Exécutons Servlet avec Amazon Corretto maintenant
Exécutez SystemSpec (RSpec) et Rubocop sur CircleCI
Exécutez Ubuntu + ROS avec Docker sur Mac
Exécutez l'environnement Docker Rails MySQL sur Heroku. concevoir et cacher l'API Twitter