Docker Configuration

The first step of installing the Scalable Query Engine is to configure and build the Docker images of the worker pods.

In the git project, jaspersoft-containers/Docker/scalableQueryEngine/ contains the following files and folders:

File or Folder Description

Dockerfile

The main installation script for the Scalable Query Engine.

.env

Environment variables for building the Docker images, see the next section.

Dockerfile.drivers

Script that copies the supported JDBC Drivers from JasperReports Server to the Scalable Query Engine.

docker-compose.yaml

Compose file to orchestrate the Scalable Query Engine, its drivers, and the redis services.

scripts

Folder containing scripts for the Scalable Query Engine.

resources/drivers

Folder created by scripts with a copy of the JDBC drivers.

resources/keystore

Folder where you place a copy of the JasperReports Server keystore.

resources/properties

Folder containing properties files for the Scalable Query Engine.

Configuring the Docker Images

Before building the Docker images, edit the .env file to specify the following properties:

Property Description

JASPERREPORTS_SERVER_
VERSION

JasperReports Server release version (must be 9.0.0 or higher).

SCALABLE_QUERY_ENGINE_
IMAGE_NAME

Name for the Docker image, scalable-query-engine by default.

SCALABLE_QUERY_ENGINE_
DRIVER_IMAGE_NAME

Name for the JDBC drivers Docker image, scalable-adhoc-drivers by default.

SCALABLE_QUERY_ENGINE_DRIVER_IMAGE_TAG

Docker tag for the Scalable Query Engine image, 9.0.0 by default.

SCALABLE_QUERY_ENGINE_IMAGE_TAG

Docker tag for the Scalable Query Engine Drivers image, 9.0.0 by default.

JDK_BASE_IMAGE

Docker image certified for the version of JasperReports Server being deployed, either openjdk:11-jdk for Debian or amazoncorretto:11 for Amazon Linux 2.

ks

Path to the server's .jrsks keystore file, usually /etc/secrets/keystore.

ksp

Path to the server's .jrsksp keystore properties file, usually /etc/secrets/keystore.

RELEASE_DATE

Release date of the JasperReports Server version, for example Month-Day, Year when using 9.0.0.

Building the Docker Images

The recommended way to build the Docker images for the Scalable Query Engine is to use docker-compose command as follows:

cd <js-install>/jaspersoft-containers/Docker/scalableQueryEngine
docker-compose build

If there is an error such as "requested access to the resource is denied," then run the following commands:

sudo gpasswd -a $USER docker
newgrp docker

Alternatively, you can also build the Docker images with the following commands:

cd <js-install>
docker build -t scalable-query-engine:<docker-tag>
             -f jaspersoft-containers/Docker/scalableQueryEngine/Dockerfile .
docker build -t scalable-query-engine-drivers:<drivers-tag>
             -f jaspersoft-containers/Docker/scalableQueryEngine/Dockerfile.drivers .

Deploying with Docker Alone (Optional)

If you want to install the Ad Hoc worker with Docker alone, the deployment is simpler, but you do not have the advantages of a cluster managed through Kubernetes. If you want to deploy with Kubernetes and Helm charts, skip this section and go to Deploying with Kubernetes.

Edit the file docker/application.properties to make any necessary configuration. In particular, any JNDI data source to be used in Ad Hoc views and reports needs to be configured in this properties file.

1. Copy your server's keystore and keystore properties files to <js-install>/jaspersoft-containers/Docker/scalableQueryEngine/resources/keystore. The keystore files must be same that JasperReports® Server used when creating its repository database.
2. Navigate to the <js-install> directory and run the following command:
docker network create jrs_default 
docker-compose up -d scalable-query-engine

You can check that the worker is running at:

<worker_ip>:8081/actuator/health.

3. Configure your JasperReports Server instance as described in Configuring JasperReports Server, then restart your server.

Once your server and query engine are running, you can test a dashboard that contains an Ad Hoc view. After it runs, you can check the worker logs with the following command on the server:

docker logs scalable-query-engine/8.0.0