Docker
Containerizing IdentityIQ with Docker: base image, build and runtime configuration.
A Docker deployment packages IdentityIQ and Tomcat into an image, with database and secrets supplied via environment/config at runtime.
- Prerequisites for Docker
- Step-by-step install path
- Common pitfalls and fixes
- Verification after install
Containerising IdentityIQ with Docker packages the application server and the IdentityIQ WAR into a reproducible image, while keeping the database and secrets external. Containers make environments consistent from a developer laptop to production, provided you resist the temptation to bake state or credentials into the image.
Prerequisites
- A base image with a supported JDK and Tomcat.
- The IdentityIQ WAR and configuration.
- An external database the container can reach.
- A secrets mechanism (environment variables or mounted files, not baked-in).
Step by step
- 1. Build the image: start from JDK+Tomcat, add the
identityiqWAR and base configuration. - 2. Externalise configuration: supply database connection and secrets at runtime via environment variables or mounted config.
- 3. Mount volumes for logs and any persistent configuration you need to survive container restarts.
- 4. Run the container, exposing the Tomcat port, pointed at the external database.
- 5. Initialise the schema against the external database (once), then start serving.
Verify
Confirm the container starts, connects to the database, and serves the login page. Check that restarting the container preserves nothing you did not intend, state should live only in the database and mounted volumes.
Container best practice
- Keep the database external, never inside the application container.
- Never bake secrets into the image; inject them at runtime.
- Treat containers as immutable, rebuild to change, do not patch running containers.
- Pin base-image and JDK versions to those supported by your release.
Common pitfalls
- Secrets in the image layers, a serious security leak.
- Expecting state to persist in the container filesystem.
- Unsupported JDK/Tomcat in the base image.