Skip to main content

Pentaho+ documentation is moving!

The new product documentation portal is here. Check it out now at docs.hitachivantara.com

 

Hitachi Vantara Lumada and Pentaho Documentation

Docker command tool property and registry files

Parent article

You can use the properties file to configure the DockMaker command. You can use the registry file to find what versions and combinations are supported by the DockerMaker command.

Docker command tool property file

The DockMaker.properties file contains configuration settings for the DockMaker command line tool, particularly the download and storage of artifacts.

The artifact cache directory is defined by the following code:

docker.server.artifactCache=./artifactCache

Although the default is to use the artifactCache directory in main directory for DockMaker, you can set cache to a secure location on your filesystem.

The rest of the file contains information on how to build a URL for the artifact to download. For example, the docker.download.host.prefix property defines the host URI of all Pentaho artifact downloads. The docker.server.curlCommand property defines the syntax for the curl command. For instance, you may want to change this property to a wget command per some installations.

Preset variables

A set of variables are automatically available and can be used within the properties file to create other variables. The following variables are preset:

  • Version

    The version of the base server zip (9.4.0.0 for example)

  • distNumber

    The build number of base server zip (343 for example)

  • patchVersion

    The version of the patch file (9.4.0.1 for example), if supplied

  • patchDistNumber

    The build number of the patch file (828 for example)

  • edition

    EE

  • pluginId

    Three character plugin ID (paz, pdd, pir, or hdp for example) being processed.

  • karId

    The unique ID for a KAR file. (For example, the KAR file used on the command line)

  • PORT

    The port number from the command line

  • USER

    The user from the command line

  • PASSWORD

    The password from the command line

Derived variables

Derived variables have values based on a true or false condition. All properties names for these derived variables start with docker.server.var followed by a number to make each line unique, followed by the name of variable being set, followed by the value to set it to. The value of this property contains a JavaScript representation of the condition for setting this variable. All derived variables are usually supplied as the last section in the file but can appear anywhere.

Consider the following lines of code:

# set fileDistNumber to the distNumber, or blank if the distNumber="latest"
docker.server.var.0.fileDistNumber.="${distNumber}" === "latest" 
docker.server.var.1.fileDistNumber.-${distNumber}="${distNumber}" != "latest"

The first line is a comment describing the lines that follow. Second line sets a derived variable named fileDistNumber to an empty string, but only if distNumber equals latest. The third line sets the same fileDistNumber variable to ${distNumber}, but only if the distNumber does not equal lastest.

Mandatory variables

All other properties in the file are variables with a value. Some of these properties are required by the application to properly download artifacts.

The following variables are mandatory:

  • docker.pdi.pdiArtifactFileName

    The file name associated with the PDI artifact

  • docker.pdi.pdiArtifactUrl

    The complete URL used in the curl command to download the PDI artifact

  • docker.server.serverArtifactFileName

    The file name associated with the Pentaho Server artifact

  • docker.server.serverArtifactUrl

    The complete URL used in the curl command to download the Pentaho Server artifact

  • docker.server.serverPluginFileName

    The file name associated with a ${pluginId} (paz, pad, pir, and hdp)

  • docker.server.serverPluginUrl

    The complete URL used in the curl command to download a ${pluginId}

  • docker.server.serverPatchFileName

    The file name associated with the patch artifact

  • docker.server.serverPatchUrl

    The complete URL used in the curl command to download the patch

  • docker.server.karFileName

    The file name associated with the a ${karId}

  • docker.server.karUrl

    The complete URL used in the curl command to download a KAR file

  • docker.server.curlCommand

    The syntax of the curl command where ${url} contains one of the URLs listed above, ${outputFolder} contains the destination folder for the artifact, and ${filename} contains the file name associated with the URL

Variable resolution order

All variables in the file are resolved in the following specific order:

  • Preset Variables based on command line entered.
  • Derived Variables in the order they appear in the DockMaker.properties file. Derived Variables only have access to Preset Variables and any Derived Variables that appear earlier in the file.
  • Mandatory variables and their dependencies just before applying that variable.

Other variables can be added as necessary to simplify the definition process. For example, docker.download.host.prefix was added to facilitate the hostname in the URLs.

Docker command tool registry file

The containers/registry.yml file contains information about what versions and combinations are supported by the command tool. The databaseMap section of the file defines what databases can be used to host the Pentaho Server repository database.

The following section of the file is an example of Postgres as the repository database:

postgres:
  databaseInstances:
    - versions: "9.6,13.5"
      edition:
      composeYml: docker-compose-postgres.yml
      dbInitFolder: db_init_postgres
      image: postgres:${DATABASE_VERSION}

Two versions of Postgres are supported, 9.6 or 13.5. The fully qualified database names available on the command line are postgres/9.6 and postgres/13.5. The compose YML file that serves as a template for this configuration is dock-compose-postgres.yml and the directory containing the DDL to define the tables are in the db_init_postgres directory. The docker image that will be pulled down is defined in the image property and will be either postgres:9.6 or postgres:13.5.

The karFileRegistry section of the registry file defines the various KAR files that can be installed. The buildRegistry section defines various fields that are conditional to the Pentaho version being chosen. Pentaho Server version 8.x supports openjdk:8, but Pentaho Server version 9.x supports openjdk:8 or openjdk:11.