Knowledge Base

Oracle Identity Mgmt

Updated 26 May 2026

Deploy Oracle Identity Governance (OIG) 14.1.2.1.0 with Oracle Database 19c in Docker.

Minimum RAM: 12 GB recommended (8 GB possible at ~92% utilisation).

Prerequisites

Create an account at container-registry.oracle.com and accept licence terms for OIG and Database products.

bash
docker login container-registry.oracle.com

Pull & Tag Images

bash
docker pull container-registry.oracle.com/middleware/oig:14.1.2.1.0-jdk17-ol8-250315
docker tag container-registry.oracle.com/middleware/oig:14.1.2.1.0-jdk17-ol8-250315 \
  localhost/oracle/oig:14.1.2.1.0
 
docker pull container-registry.oracle.com/database/enterprise:19.3.0.0
docker tag container-registry.oracle.com/database/enterprise:19.3.0.0 \
  localhost/oracle/database:19.3.0.0-ee
 
git clone https://github.com/0xPThree/WebLogic

setenv.sh

bash
setenv.sh
#!/bin/sh
 
NETWORK_NAME="containerizeddb_default"
NETWORK_SUBNET="172.30.0.0/24"
NETWORK_GATEWAY="172.30.0.1"
 
if ! docker network inspect "${NETWORK_NAME}" >/dev/null 2>&1; then
  docker network create \
    --subnet "${NETWORK_SUBNET}" \
    --gateway "${NETWORK_GATEWAY}" \
    "${NETWORK_NAME}"
fi
 
export DC_REGISTRY_OIG="localhost"
export DC_REGISTRY_DB="localhost"
export DC_DB_VERSION="19.3.0.0-ee"
export no_proxy="localhost,127.0.0.1,.dev.local,/var/run/docker.sock"
 
exportComposeEnv() {
  export DC_HOSTNAME="kiot.dev.local"
  export DC_HOST_GATEWAY="${NETWORK_GATEWAY}"
  export DC_DB_IP="172.30.0.2"
  export DC_DB_HOST="oimdb.dev.local"
  export DC_DB_PORT=1521
  export DC_DB_OEM_PORT=5500
  export DC_DB_SID="oimdb"
  export DC_DB_PDB="oimpdb"
  export DC_DB_SYSPWD="Passw0rd123"
  export DC_DB_DBDATA="/u01/app/docker/OIG/dbdata"
  export DC_WLS_ADMIN_PASSWORD="Passw0rd123"
  export OIG_IMAGE="localhost/oracle/oig:14.1.2.1.0"
  export DC_RCU_SCHPWD="Passw0rd123"
  export DC_RCU_OIMPFX="OIM03"
  export DC_DOMAIN_HOME="/u01/app/docker/OIG/domain"
}
 
exportComposeEnv
mkdir -p "${DC_DOMAIN_HOME}" "${DC_DOMAIN_HOME}/domains" \
  "${DC_DOMAIN_HOME}/domains/ConnectorDefaultDirectory" "${DC_DB_DBDATA}"
chmod 777 "${DC_DOMAIN_HOME}" "${DC_DB_DBDATA}"

/etc/hosts

code
172.30.0.1 kiot.dev.local
172.30.0.2 oimdb.dev.local

docker-compose.yaml

yaml
docker-compose.yaml
x-common: &default-common
  ulimits:
    nofile:
      soft: 65536
      hard: 65536
    nproc:
      soft: 16384
      hard: 16384
  extra_hosts:
    - "${DC_HOSTNAME}:${DC_HOST_GATEWAY}"
    - "${DC_DB_HOST}:${DC_DB_IP}"
 
services:
  oimdb:
    <<: *default-common
    image: ${DC_REGISTRY_DB}/oracle/database:${DC_DB_VERSION}
    container_name: oimdb
    ports:
      - "${DC_DB_PORT}:1521"
      - "${DC_DB_OEM_PORT}:5500"
    environment:
      - ORACLE_SID=${DC_DB_SID}
      - ORACLE_PDB=${DC_DB_PDB}
      - ORACLE_PWD=${DC_DB_SYSPWD}
    volumes:
      - ${DC_DB_DBDATA}:/opt/oracle/oradata
 
  oimadmin:
    <<: *default-common
    image: ${OIG_IMAGE}
    container_name: oimadmin
    hostname: oimadmin
    command: /bin/bash -c "sleep 5s; /u01/oracle/dockertools/createDomainAndStart.sh"
    ports:
      - "7001:7001"
    environment:
      - ADMIN_HOST=${DC_HOSTNAME}
      - ADMIN_PASSWORD=${DC_WLS_ADMIN_PASSWORD}
      - CONNECTION_STRING=${DC_DB_HOST}:${DC_DB_PORT}/${DC_DB_PDB}
      - DB_PASSWORD=${DC_DB_SYSPWD}
      - DB_SCHEMA_PASSWORD=${DC_RCU_SCHPWD}
      - RCUPREFIX=${DC_RCU_OIMPFX}
    volumes:
      - ${DC_DOMAIN_HOME}:/u01/oracle/user_projects
 
  soams:
    <<: *default-common
    image: ${OIG_IMAGE}
    container_name: soams
    hostname: soams
    depends_on:
      - oimadmin
    command: /bin/bash -c "/u01/oracle/dockertools/startMS.sh"
    ports:
      - "8001:8001"
      - "8002:8002"
      - "8003:8003"
    environment:
      - ADMIN_HOST=${DC_HOSTNAME}
      - ADMIN_PORT=7001
      - ADMIN_PASSWORD=${DC_WLS_ADMIN_PASSWORD}
      - MANAGED_SERVER=soa_server1
      - MS_HOST=${DC_HOSTNAME}
    volumes:
      - ${DC_DOMAIN_HOME}:/u01/oracle/user_projects
 
  oimms:
    <<: *default-common
    image: ${OIG_IMAGE}
    container_name: oimms
    hostname: oimms
    depends_on:
      - oimadmin
    command: /bin/bash -c "/u01/oracle/dockertools/startMS.sh"
    ports:
      - "14000:14000"
      - "14001:14001"
      - "14002:14002"
    environment:
      - ADMIN_HOST=${DC_HOSTNAME}
      - ADMIN_PORT=7001
      - ADMIN_PASSWORD=${DC_WLS_ADMIN_PASSWORD}
      - MANAGED_SERVER=oim_server1
      - MS_HOST=${DC_HOSTNAME}
    volumes:
      - ${DC_DOMAIN_HOME}:/u01/oracle/user_projects
 
networks:
  default:
    external: true
    name: containerizeddb_default

Startup

⚠ Warning

⚠ Warning — Start containers in the correct order from the same terminal session. The environment is very sensitive.

bash
. ./setenv.sh
 
# 1. Start database (~15 min)
docker compose up -d oimdb
docker logs -f oimdb
# Wait for: "DATABASE IS READY TO USE!"
 
# 2. Start WebLogic Admin Server
docker compose up -d oimadmin
docker logs -f oimadmin
# Wait for: "Admin server is running"
 
# 3. Start SOA Managed Server
docker compose up -d soams
docker logs -f soams
 
# 4. Start OIM Managed Server
docker compose up -d oimms
docker logs -f oimms

Access

ServiceURLCredentials
WebLogic Consolehttp://kiot.dev.local:7001/consoleweblogic / Passw0rd123
Enterprise Managerhttp://kiot.dev.local:7001/emweblogic / Passw0rd123
Identity Self Servicehttp://kiot.dev.local:14000/identityweblogic / Passw0rd123
System Administrationhttp://kiot.dev.local:14000/sysadminxelsysadm / Passw0rd123

Troubleshooting

OOM errorsulimits are already configured in the compose file above.

Domain config failed — Password complexity not met. Ensure 8+ chars with mixed case and numbers.

Container hangs — Insufficient RAM. Increase allocation.