Docker container running

Figaf Tool is published as a Docker image, so you can run it without installing Java or unpacking a jar file on the host.

The image carries its own Java runtime, which means you never have to plan a Java upgrade for it: the runtime is replaced together with the application when you move to a newer tag.

1. Prerequisites

  • A working Docker installation on the machine that will host the container.

  • A database the container can reach. PostgreSQL, Oracle and MS SQL Server are supported.

    For PostgreSQL the container creates the database and the IRT schema itself at start-up if they don’t exist yet, so only the server and the user have to be prepared in advance. For Oracle and MS SQL Server, create the database and the schema before you start the container, as described in Local application running.

  • A license key. See License installation.

Check Requirements for memory and database sizing.

2. Choose an image tag

The image is published on Docker Hub as figaf/app. Every release produces two tags:

  • figaf/app:<version> - the standard distribution, described on this page.

  • figaf/app:<version>-btp - the distribution for SAP BTP, which takes its database credentials from a Cloud Foundry service binding and is not meant to be run with docker run. See SAP BTP deployment.

Use a plain release version such as 2608. Don’t use a tag containing SNAPSHOT unless Figaf support has asked you to.

3. Create the environment file

The container is configured entirely through environment variables. Collect them in a file, for example params.env, with one NAME=value pair per line and no quotes around the values.

params.env for a PostgreSQL database
IRT_DB_TYPE=postgresql
IRT_DB_HOST=db.internal.company.com
IRT_DB_PORT=5432
IRT_DB_NAME=irt
IRT_DB_USER=irt
IRT_DB_PASSWORD=HereYourPassword123
IRT_DB_SSLMODE=require
IRT_CONTAINER_PORT=8089
SERVER_PROTOCOL=http
SERVER_HOST=localhost
SERVER_PORT=8089
XMX_VALUE=4G
params.env for an MS SQL Server database
IRT_DB_TYPE=mssql
IRT_DB_HOST=db.internal.company.com
IRT_DB_PORT=1433
IRT_DB_NAME=irt
IRT_DB_USER=irt
IRT_DB_PASSWORD=HereYourPassword123
IRT_CONTAINER_PORT=8089
SERVER_PROTOCOL=http
SERVER_HOST=localhost
SERVER_PORT=8089
XMX_VALUE=4G

IRT_CONTAINER_PORT is the port the application listens on inside the container. SERVER_PROTOCOL, SERVER_HOST and SERVER_PORT describe the address your users reach the tool on, which may differ from it if you publish the container on another port or put a reverse proxy in front. Together they form the URL the tool puts into reports and e-mail notifications, so set all three.

See Docker environment variables for the full list.

4. Run the container

docker run -d --name figaf-tool -p 8089:8089 --env-file params.env figaf/app:<version>

The published port must match IRT_CONTAINER_PORT. To reach instance monitoring as well, publish its port too and enable direct access to it.

When the container has booted, open http://localhost:8089 and log in with the default root administrator credentials (username: superUser, password: default). Change the password immediately, and read User management to set up real users.

5. Add JDBC drivers and other libraries

The container always starts with -Dloader.path=/libs, so extra jar files are added by mapping a volume to /libs:

docker run -d --name figaf-tool -p 8089:8089 \
  --env-file params.env -v /opt/figaf/libs:/libs figaf/app:<version>

You need this for the Oracle or MS SQL Server JDBC driver, for the SAP PRO client libraries and for the SAP Java Connector, exactly as described for the local installation.

A PostgreSQL driver is already built into the image at /libs. Mapping a volume over that folder hides it, so the mapped folder must contain its own PostgreSQL driver as well when you use a PostgreSQL database.

6. Pass application properties

Only the settings listed in Docker environment variables have their own environment variable. Every other application property is passed through ADDITIONAL_IRT_PARAMETERS, space separated and in the same --<property name>=<value> syntax:

ADDITIONAL_IRT_PARAMETERS=--irt.testing.use-only-alphanumeric-order-numbers=true --irt.config.ticket-id-prefix=CHG

7. Serve the application over HTTPS

Put the key store in a mapped folder and point IRT_SSL_KEY_STORE at its path inside the container. Set SERVER_PROTOCOL=https so that generated links use the right scheme:

IRT_SSL_KEY_STORE=/config/keystore.p12
IRT_SSL_KEY_STORE_PASSWORD=123456
IRT_SSL_KEY_STORE_TYPE=PKCS12
IRT_SSL_KEY_STORE_ALIAS=IRT
SERVER_PROTOCOL=https

To make the container trust certificates of its own, set USE_SYSTEM_CA_CERTS to any non-empty value and map a folder containing them to /certificates. They are added to the Java trust store while the container starts.

8. Instance monitoring

Instance monitoring is enabled by default in the Docker distribution, unlike the local installation where it is off. It runs a Glowroot agent and exposes it under /instance-monitoring, which is accessible only to users with the IRTAdmin role.

To reach the Glowroot UI on its own port rather than through the application, two things are needed together:

ENABLE_DIRECT_ACCESS_TO_INSTANCE_MONITORING_PORT=true
docker run -d --name figaf-tool -p 8089:8089 -p 4000:4000 --env-file params.env figaf/app:<version>

Publishing the port on its own is not enough. Glowroot listens on the container’s loopback address unless ENABLE_DIRECT_ACCESS_TO_INSTANCE_MONITORING_PORT is true, which it isn’t by default, so -p 4000:4000 alone leads nowhere.

INSTANCE_MONITORING_PORT changes the port from 4000. Set ENABLE_INSTANCE_MONITORING=false to turn the feature off.

The Glowroot UI works only when it’s opened on its root URL <instance url>/instance-monitoring. A direct link to a page inside it won’t work.

To keep its configuration and data across restarts, map a volume to /glowroot.

9. Upgrade to a new version

All data is in the database, so upgrading is a matter of replacing the container:

  1. Pull the new image: docker pull figaf/app:<version>.

  2. Stop and remove the running container: docker rm -f figaf-tool.

  3. Start it again with the new tag and the same params.env and volumes.

Check the Change log for the releases you’re skipping - some of them ask for a manual action.

10. Remove the container

docker rm -f figaf-tool

This removes the application only. To clean up the objects Figaf Tool created on your SAP systems, follow Uninstallation first.

11. Next steps