Java Microservices with Spring Cloud Config and JHipster

Matt Raible

I’m not sure, but I do know it consumes quite a bit of memory. You should be able to bump up the memory and CPU that Docker uses in Docker > Preferences > Advanced. I have my Docker preferences set to 6 CPUs and 16GB of RAM.
I’ve run this example successfully on a 2015 MacBook Pro with 16GB of memory, a 2016 Lenova (with Ubuntu) with 32GB of memory, and a 2018 MacBook Pro with 32GB of memory.

Dean Martin

Quick question, do I need to rerun “mvn -Pprod verify com.google.cloud.tools:jib-maven-plugin:dockerBuild” every time i make a code change to rebuild the docker images? Thanks

Matt Raible

I recommend building the Docker images as part of your CI process, and not for local development. When developing locally, it’s often easier to just run ./mvnw for each application and docker-compose to start your Docker images.

Dean Martin

Cool thanks. Just to clarify you mean it’s typically better to start the local microservice apps your working on locally with ./mvnw while using docker-compose to start up images you require which are being built by your CI/CD process e.g. keycloak or whatever. Thanks

Matt Raible

Close, but not quite. For local JHipster development, I recommend starting your apps with their build tool (Maven or Gradle). For any services they require (e.g., Keycloak, MongoDB, Elasticsearch, etc.), I recommend using docker-compose. All of the files for these services are generated for you in the src/main/docker directory of the applications that require them.

Your CI/CD process should generate the Docker images using Jib and upload them to a Docker repo. Then your production deployment process can grab them from your repo. Yes, you can build your Docker images locally and run everything with docker-compose, but I don’t think it’s as efficient as running them with a build tool. Running them with a build tool gives you the ability to do hot-reload and iterate faster.

Dean Martin

Awesome, thanks for the recommendation. I’m actually getting issues when bringing up keycloak via the docker-compose keycloak.yml file. I just run “docker-compose -f mygateway/src/main/docker/keycloak.yml up -d” Keycloak starts fine but has none of the realms, users etc. I tried importing manualy the realm and user json files but get error on keycloak UI saying “App does not exist in roles :realm-management”. Do I need to manually setup the roles and clients etc?? Thanks again

Matt Raible

Did you alter anything in your realm files? I just created a new gateway (with JHipster 6.6.0) and didn’t have any issues. I’m running docker-compose -f src/main/docker/keycloak.yml up -d from within my gateway directory, but that shouldn’t matter.
https://uploads.disquscdn.c…

Maybe it’d be easier to just use Okta? :wink:

Dean Martin

No didn’t alter anything although I did do jhipster-upgrade. Not sure if it mucked something up. I’ll double check. Thanks

Dean Martin

Managed to get past my previous error. It was related to docker volumes not being mounted when project not in user directory on windows. Is it possible you could have a look at this issue on stackoverflow if you get time. Thanks appreciate the responses. https://stackoverflow.com/q…

Dean Martin

I gave up and regenerated my gateway from scratch. I put it down to some versioning/environment issues as I am using windows WSL. One last question if you don’t mind, do you have a blog post or anything showing how to get keycloak running in Heroku? I pushed docker image up but getting some issues

Matt Raible

No, I do not. I’ve never tried to get Keycloak running on Heroku. Use Okta, it’s easier. :wink:

Dean Martin

Haha I knew you’d say that. Ok thanks again, much appreciated.

Omrani Mohamed Amine

Dear Mr. Matt Raible,
After the last update of Jhipster (6.8.0), I had the following result by testing it on this same example app.jh (in JWT mode)
You can try it yourself
an explanation for this plz?
https://uploads.disquscdn.c…

Govind Raju

How can we integrate Ignite a react Native app with MicroService application …?
Will work the same way , if we ran below command …?
ignite generate import-jdl …/app.jh

Matt Raible

Yes, it should work. If you experience any issues, please create an issue in the Ignite JHipster project on GitHub.

Govind Raju

Cool Thanks .!!

Govind Raju

Enter the path to your JHipster project root directory:

which path should i provide …? gateway ,blog or store …?

Govind Raju

Enter the path to your JHipster project root directory:

which path should i provide …? gateway ,blog or store …?

Matt Raible

The gateway, since that’s the main entry point into your microservice architecture.

Govind Raju

Thanks Matt.