PingIDM 7.5.0

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 .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
  2. Build the base image for IDM:

    1. Download the latest version of the IDM .zip file from the ForgeRock Download Center.

    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 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
  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.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.