PingIDM

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. Ping 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-21 base image:

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

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

      cd /path/to/forgeops-extras/images/java-21
      docker build --tag my-repo/java-21 .
      
       => [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-21                 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-21:latest

      to:

      FROM my-repo/java-21
    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:8.1.0
      
       => [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:8.1.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                  8.1.0    0cc1b7f70ce6    1 hour ago     387MB
    my-repo/java-21              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.