IDM

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:

  1. As a prerequisite, you must build the java-17 base image:

    1. Clone the https://github.com/ForgeRock/forgeops-extras.git repository.

    2. Build the java-17 base image from the forgeops-extras/images/java-17 directory:

      cd /path/to/forgeops-extras/images/java-17
      docker build --tag my-repo/java-17 .
      
       => [internal] load build definition from Dockerfile                                  0.0s
       => => transferring dockerfile: 2.38kB                                                0.0s
       ...
       => => writing image sha256:7674…​f7f5                                                 0.0s
       => => naming to docker.io/my-repo/java-17                                            0.0s
  2. Build the base image for IDM:

    1. Download the latest version of the IDM .zip file from the Backstage download site.

    2. Unzip the IDM .zip file.

    3. Edit the Custom.Dockerfile in the openidm/bin directory. Change the line:

      FROM gcr.io/forgerock-io/java-17:latest

      to:

      FROM my-repo/java-17
    4. Build the IDM base image from the openidm/bin directory:

      cd /path/to/openidm/bin
      docker build . --file Custom.Dockerfile --tag my-repo/idm:7.4.3
      
       => [internal] load build definition from Custom.Dockerfile                           0.0s
       => => transferring dockerfile: 648B                                                  0.0s
       ...
       => => writing image sha256:9550…​5788                                                 0.0s
       => => naming to docker.io/my-repo/idm:7.4.3                                          0.0s
  3. 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.4.3    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.

After you build your base images, you can push them to your Docker repository. Refer to your registry provider documentation for detailed instructions.