Oracle Identity Mgmt
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.
docker login container-registry.oracle.comPull & Tag Images
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/WebLogicsetenv.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
172.30.0.1 kiot.dev.local
172.30.0.2 oimdb.dev.local
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_defaultStartup
⚠ Warning — Start containers in the correct order from the same terminal session. The environment is very sensitive.
. ./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 oimmsAccess
| Service | URL | Credentials |
|---|---|---|
| WebLogic Console | http://kiot.dev.local:7001/console | weblogic / Passw0rd123 |
| Enterprise Manager | http://kiot.dev.local:7001/em | weblogic / Passw0rd123 |
| Identity Self Service | http://kiot.dev.local:14000/identity | weblogic / Passw0rd123 |
| System Administration | http://kiot.dev.local:14000/sysadmin | xelsysadm / Passw0rd123 |
Troubleshooting
OOM errors — ulimits 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.