Skip to content

About

MidPoint Docker Images

Resources

Stars

23 stars

Watchers

22 watching

Forks

Repository files navigation

midPoint Docker

midPoint is the leading open source identity governance and administration platform (IGA). It is a comprehensive feature-rich system that has been continuously developed and maintained by a full-time team of professionals. midPoint is available under the terms of Apache License and European Union Public License.

This repository holds the Dockerfiles and helper scripts for building and running midPoint container images.

Just run midPoint

All midPoint images are published at Docker Hub, so you do not need to build anything to run midPoint.

Pull the image:

docker pull evolveum/midpoint

For a running instance with a database in one command, use the interactive helper (it starts the published image with PostgreSQL via docker compose, and can manage named instances, logs, etc.):

./midpoint-quickstart.sh          # interactive menu
./midpoint-quickstart.sh start    # start non-interactively

Or bring up the stack directly with the provided compose file:

docker compose up

The compose file runs PostgreSQL 17. A database volume created by an older version of the file (PostgreSQL 16) cannot be opened by PostgreSQL 17: either migrate it with pg_dump / pg_restore, or start over with docker compose down -v, which deletes the data.

Build your own image

Use build.sh to build a current midPoint image from the Dockerfiles in dockerfiles/. The image is assembled in three stages, all built locally by the script:

  1. base - OS + JDK (dockerfiles/Dockerfile-base)

  2. dist - the midPoint payload from the public Nexus (dockerfiles/Dockerfile-dist)

  3. final - the runnable image (dockerfiles/Dockerfile)

The distribution tarball is fetched from the public Nexus by ./download-midpoint; no credentials are needed. The Dockerfiles take their versions as build arguments; build them through build.sh or a preset rather than with a plain docker build.

# latest release, alpine, Java 25, non-root (midPoint 4.11+ defaults)
./build.sh

# newest development snapshot
./build.sh devel

# midPoint 4.10 and older: Java 21 and the root user
./build.sh --os ubuntu --java 21 --runtime-user root 4.10.5

Presets per midPoint version

The parameters differ per midPoint version. The scripts in presets/ call build.sh with the same parameters the official images are built with, so you only pick the version:

./presets/build-nightly.sh          # newest development snapshot (master)
./presets/build-4.11.sh             # newest 4.11.Z release
./presets/build-4.11.sh 4.11.0      # a specific 4.11 release
./presets/build-4.11.sh nightly     # newest 4.11 support branch snapshot
./presets/build-lts.sh              # newest release of the current LTS line (4.8)
./presets/build-lts.sh nightly      # newest LTS support branch snapshot

Any further options are passed to build.sh and override the preset, e.g. ./presets/build-4.10.sh 4.10.5 --os rockylinux.

Preset midPoint Java OS Runtime user H2 demo repository

build-nightly.sh

development snapshot

25

alpine

midpoint

no

build-4.11.sh

4.11

25

alpine

midpoint

no

build-4.10.sh

4.10

21

ubuntu

root

no

build-4.9.sh

4.9

21

ubuntu

root

no

build-4.8.sh, build-lts.sh

4.8 (LTS)

21

ubuntu

root

yes

Common options (see ./build.sh --help for all):

Option Meaning Default

MP_VERSION (positional)

Release (e.g. 4.9.9), latest, X.Y-latest (newest X.Y.Z release), devel, or X.Y-support (newest X.Y support branch snapshot)

latest

--os

Base OS family: alpine | ubuntu | rockylinux

alpine

--os-tag

Base OS image tag

per family

--java

JDK version (25 for 4.11+, 21 for 4.10 and older)

25

--runtime-user

root | midpoint (4.11+ run as non-root midpoint; use root for 4.10 and older)

midpoint

--h2

Enable the in-memory H2 demo repository (4.8 and older)

off

--base-image REF

Reuse a prebuilt base image, skip building the base stage

-

--dist-image REF

Reuse a prebuilt dist image, skip download + building the dist stage

-

--image / --tag

Final image name / tag

midpoint / <MP_VERSION>-<os>

Reusing a prebuilt stage speeds up repeated builds, e.g. build only the dist + final on top of a published base:

./build.sh --base-image registry.evolveum.com/public/midpoint-base:25-alpine devel

Run a locally built image

build.sh tags the image midpoint:<MP_VERSION>-<os> by default. Point the compose file at it via MP_IMAGE:

MP_IMAGE=midpoint:latest-alpine docker compose up

Legacy content

The legacy/ directory holds the previous single-stage Dockerfile, the Connector Server Dockerfile-cs, old templates and container files. It is kept for reference only and is scheduled for removal in 2028. Do not build on it.

See also

About

MidPoint Docker Images

Resources

Stars

23 stars

Watchers

22 watching

Forks

Releases

Packages

Used by

Contributors

Languages