Just imagine you start working for a customer on an IdentityIQ based IAM project. You have access to their IdentityIQ project code base and they use SSB (Service Standard Build) framework to manage their IdentityIQ build. Now you want to setup your local environment to run IdentityIQ with their customization so that you can develop and test new features locally without impacting other people's work. This can be a tedious task which requires deep knowledge of IdentityIQ. It requires installing required software such as JDK, Tomcat, Database (such as MySQL, MSSQL or Oracle etc.), then you will need:
This sounds a very daunting task! It can also be repetitive considering if you move to different customers you may end up doing the same thing again and again. So is there a way to simplify and automate this? The answer lies in Docker.
Docker allows us to hide the complexity of setting up different components and softwares that are required to run an IdentityIQ application, and provide the opportunity to streamline whole installation process. With this approach, both IdentityIQ application and Database are running in Docker container. As a result, you don't need to install softwares (such as JDK, Tomcat, MySQL) that are usually required to run a non-containerized IdentityIQ. In fact, the only thing you need to install is Docker Desktop. In addition to that, you don't even need to know anything about IdentityIQ to run it in your local environment. This is because all installation steps are handled by a single script which you only need to execute the first time.
You might wonder if Database is running in Docker container, would data get lost every time Docker container is restarted? The answer is no. Database data will be mapped to a local folder through volume mapping, so data will be saved permanently as long as the mapped local folder is not deleted.
First you need to install Docker Desktop.
Then clone the following Github repository and follow instructions on the main page.
https://github.com/renliangfeng/iiq-bootstrap
Mac OS/Linus/Windows
MySQL/MSSQL
This solution is intended only for local environment. Generally speaking, Database in Container is not recommended in a shared environment (such as SIT, UAT and Production).