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
./mvnw compile quarkus:dev
./mvnw package
docker build -f src/main/docker/Dockerfile.jvm -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 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
kubectl apply -f kubernetes.yml
aws eks update-kubeconfig --name test-cluster
kubectl apply -f kubernetes.yml
kubectl scale --replicas=10 deployment quarkus-app
kubectl get pod -w