This is a microservice template project based on Micronaut, Java 17 and Gradle Kotlin DSL.
micronaut-jooq
- subproject contains jOOQ generated classes and Flyway migrationsmicronaut-grpc
- subproject describes gRPC contractmicronaut-app
- main service that is ready to receive incoming requests
Follow next steps:
- First of all we need start PostgreSQL(via Docker for example) on localhost and port 5432.
- Create database "micronaut-example"(should rename to real microservice name).
- Execute Gradle tasks to apply flyway DB migrations(micronaut-jooq/src/main/resources/db/migration):
:micronaut-jooq:assemble
:micronaut-jooq:flywayMigrate
- Generate jOOQ classes based on p.3, execute task:
:micronaut-jooq:assemble
- Describe proto files in micronaut-grpc/src/main/proto folder
- Execute Gradle task:
:micronaut-grpc:assemble
Build docker image with JRE and push it:
cd micronaut-app
./docker-build.sh
Run docker image:
docker run -d -p 9001:9001 -p 19001:19001 -e DATASOURCE_URL=jdbc:postgresql://[PostgreSQL IP]:5432/micronaut-example alixey/micronaut-example
Build docker native image(read first this):
cd micronaut-app
../gradlew dockerBuildNative
I use asdf to manage Java version.
- cd kubernetes
- helm install -f stage.yaml micronaut-app ./micronaut-app