Start of the midPoint environment

Last modified 10 Nov 2023 01:06 +01:00

This page contains information about starting the containerized midPoint based on available docker image.


To be able to provide the "copy-paste" samples we are referencing the docker application. The same result could be reached with other compatible applications, but it is out of the scope of this docs page to cover all the options related to the common application environment.

  • docker
    In order to start container based on the provided image the docker application has to be available.

  • docker-compose
    To have "full feature" environment of the midPoint the docker-compose feature has to be present. Without it the container can be started, but there is no way how to describe all the environment (e.g. for native repository the postgresql is needed).
    With the recent version of the docker the build in feature could be used - docker compose

  • available TCP ports
    Even the containers' network could work without port forwarding it is much more comfortable to set port forward and use localhost address. In case the ports are in use the relevant configuration change has to be applied.

    • 8080 : "main" web access - usually used for midPoint web GUI

    • 5432 : default postgreSQL database

Getting started

In order to make the small steps we can start with (so far working) H2 based generic repository. Even this repository is deprecated since midPoint version 4.4, it is still working. To see that the application can start it is more than enough…​

Once we will have working container with generic repository we will be ready to step further to the "full feature" native repository.

download the image

This is optional step. Once we will start the container the docker will automatically try to download the image in case it is not available. With the explicit download of the image we will cache it in local repository for the future use.

Use case could be planned travelling with the limited access to the internet. Once the image is cached it could be used locally.

Example 1. Download default tag - latest

docker pull evolveum/midpoint

Example 2. Download explicit tag - e.g. 4.8-alpine

docker pull evolveum/midpoint:4.8-alpine

Build the image

For the most of the situations you will not need to build own image.

All the necessary metadata needed for the container are available in midpoint-docker git repository. It doesn’t contain the OS image, packages or the midPoint distribution. These objects will be downloaded separately.

Example 3. Checkout of the git repository (and change the directory).
  • prepared build script
    There is available build script - The basic "setting" (e.g. base image /OS/, required tag /version/) is available in the file common.bash. At this moment the default image is based on Ubuntu 22.04.
    In case you are OK with this "default" setting you can simply run:

  • docker build
    In case you prefer calling directly docker with command build the Dockerfile with default ARG values is available. In that case you can build the image with following command :
    docker build --network host -tag evolveum/midpoint:custom .

Run the image

The container can be run without port forwarding - no populated port.
In that case it will technically work, but you have to know additionally the setting of the containers' network. As this is not very user friendly usage the port forwarding help us to populate the port on localhost. To reach the container / application you just need to know the port used in the command to run the container.

Let’s run the image on localhost port 8080. The syntax of populated port is -p <public_port>:<port on container>. The public port in this context is port used in URL with address localhost.

Run the image on localhost:8080
docker run -p 8080:8080 evolveum/midpoint
URL username password




In case we need other tag of image or simply different port (e.g. port is already in use) we should add this information to the command.

Run the image 4.8-alpine on localhost:8081
docker run -p 8081:8080 evolveum/midpoint:4.8-alpine
URL username password




Configuring the container

Native repository

Was this page helpful?
Thanks for your feedback