Docker command tool property and registry files
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 suppliedpatchDistNumber
The build number of the patch file (
828
for example)edition
EE
pluginId
Three character plugin ID (
paz
,pdd
,pir
, orhdp
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 artifactdocker.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 artifactdocker.server.serverPluginFileName
The file name associated with a
${pluginId}
(paz
,pad
,pir
, andhdp
)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 patchdocker.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 filedocker.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
.