Skip to content

Latest commit

 

History

History
68 lines (56 loc) · 2.06 KB

README.md

File metadata and controls

68 lines (56 loc) · 2.06 KB

Java application based on Quarkus framework

  • GitHub Actions as a CI/CD
  • GitHub Packages as a Docker images storage
  • Kubernetes as a container management tool
  • AWS EKS as a managed Kubernetes service
  • GraalVM and HotSpot implementation available
  • Reactive RESTful Web Service
  • Java 11

Useful commands:

Run app locally:

./mvnw package
java -jar target/quarkus-app/quarkus-run.jar

Run app locally with hot-reload:

./mvnw compile quarkus:dev

Run app in Docker container with OpenJDK HotSpot:

./mvnw package
docker build -f src/main/docker/Dockerfile.jvm -t a1brz/quarkus-app .
docker run -i --rm -p 8080:8080 a1brz/quarkus-app

Run app in Docker container with GraalVM:

./mvnw package -Pnative -Dquarkus.native.container-build=true
docker build -f src/main/docker/Dockerfile.native -t a1brz/quarkus-app .
docker run -i --rm -p 8080:8080 a1brz/quarkus-app

Push Docker image into GitHub Packages:

./mvnw package -Pnative -Dquarkus.native.container-build=true
docker build -f src/main/docker/Dockerfile.native -t a1brz/quarkus-app .
docker login docker.pkg.github.com -u enter-github-username -p enter-personal-access-token
docker tag IMAGE_ID docker.pkg.github.com/a1brz/quarkus-app/quarkus-app:latest
docker push docker.pkg.github.com/a1brz/quarkus-app/quarkus-app:latest      

Deploy with Kubernetes:

kubectl apply -f kubernetes.yml

For AWS EKS please update kubectl configuration first using AWS CLI:

aws eks update-kubeconfig --name test-cluster
kubectl apply -f kubernetes.yml
Scaling in Kubernetes:
kubectl scale --replicas=10 deployment quarkus-app
Kubernetes pods monitoring:
kubectl get pod -w