Manage configuration with Docker
Docker is a set of products that allows you to run IDM instances in containers. A container is a software package that can be virtualized. Containerization is one way to use a file-based configuration strategy to manage IDM clusters in a repeatable and reliable way.
You can download Docker from the official Docker homepage.
Build a base image
After you have downloaded and installed Docker, you must build a base image for IDM. ForgeRock supplies a Custom.Dockerfile
, which contains our expected structure. To build a base image with it, do the following:
-
As a prerequisite, you must build the
java-17
base image:-
Clone the
https://github.com/ForgeRock/forgeops-extras.git
repository. -
Build the
java-17
base image from theforgeops-extras/images/java-17
directory:cd /path/to/forgeops-extras/images/java-17 docker build --tag my-repo/java-17 . => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s ... => => writing image sha256:7674…f7f5 0.0s => => naming to docker.io/.my-repo/java-17 0.0s
-
-
Build the base image for IDM:
-
Download the latest version of the IDM
.zip
file from the ForgeRock Download Center. -
Unzip the IDM
.zip
file. -
Edit the
Custom.Dockerfile
in theopenidm/bin
directory. Change the line:FROM gcr.io/forgerock-io/java-17:latest
to:
FROM my-repo/java-17
-
Build the
IDM
base image from theopenidm/bin
directory:cd /path/to/openidm/bin docker build . --file bin/Custom.Dockerfile --tag my-repo/idm:7.3.0 => [internal] load build definition from Custom.Dockerfile 0.0s => => transferring dockerfile: 648B 0.0s ... => => writing image sha256:9550…5788 0.0s => => naming to my-repo/idm:7.3.0 0.0s
-
-
Run the
docker images
command to verify that you built the base images:docker images | grep my-repo REPOSITORY TAG IMAGE ID CREATED SIZE my-repo/idm 7.3.0 0cc1b7f70ce6 1 hour ago 387MB my-repo/java-17 latest 76742b285ddf 1 hour ago 146MB
If you use IDM as part of a platform deployment, refer to Base Docker images in the ForgeOps documentation.
After you build your base images, you can push them to your Docker repository. Refer to your registry provider documentation for detailed instructions.