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
./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
./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
kubectl apply -f kubernetes.yml
aws eks update-kubeconfig --name test-cluster
kubectl apply -f kubernetes.yml
kubectl scale --replicas=10 deployment quarkus-app
Kubernetes pods monitoring: