# Dockmaker

As part of customers cloud journey, many of the services used and connected as part of defined ETL workflows are present and managed by the cloud (such as storage buckets, relational & analytical databases, messaging systems, etc.).

It means Pentaho is required to:

* Sit close to these services for security and performance considerations
* Ability to scale up and down based on requirements

Pentaho does not offer a one-size-fits-all container image for deployments, understanding that each customer's needs and deployment scenarios are unique.

{% tabs %}
{% tab title="DockMaker" %}
{% hint style="info" %}
The DockMaker command line tool is intended to create docker images and start docker containers that will support various Pentaho products, including Pentaho Server, Carte, and PDI (kitchen/pan).
{% endhint %}

1. Unpack DockMaker.

```bash
cd
cd ~/Downloads
unzip dock-maker-*.zip
```

3. Follow the instructions to install DockMaker.

```bash
cd dock-maker-9.5.0.0-240-public
java -jar installer.jar -console
```

{% hint style="info" %}
The components are installed in Console mode:

* Keep taping the ⬇️ (down arrow key) until you come to the User Agreement
* (1 – accept 2 – to reject 3 - to redisplay)
* Enter: 1
* Change the default installation path:
  {% endhint %}

4. Copy & Paste the Dockmaker installation path.

```
/home/pentaho/DockMaker-9.5
```

```
Target Path
────────────────────────────────────────────────────────────────────────────────

Select the installation path:  [/home/installer/pentaho/dock-maker-9.5.0.0-240-public 
/home/pentaho/DockMaker-9.5
--------------------------------------------------------------------
Message

The target directory will be created: 
/home/pentaho/DockMaker-9.5
--------------------------------------------------------------------
Enter O for OK, C to Cancel: 
O

Press 1 to continue, 2 to quit, 3 to redisplay
1

────────────────────────────────────────────────────────────────────────────────
Installation
────────────────────────────────────────────────────────────────────────────────

====================
Installation started
Framework: 11.0.5 (Ubuntu)
Platform: ubuntu_linux,version=5.15.0-60-generic,arch=x64,symbolicName=null,javaVersion=11.0.18
[ Starting to unpack ]
[ Processing package: Base (1/1) ]
executable perms set on file DockMaker.sh
executable perms set on file DockMakerDown.sh
executable perms set on file docker-entrypoint.sh
executable perms set on file docker-entrypoint.sh
executable perms set on file install_license.sh
executable perms set on file set-pentaho-env.sh
[ Unpacking finished ]
Installation finished

────────────────────────────────────────────────────────────────────────────────
Installation Finished
────────────────────────────────────────────────────────────────────────────────

Installation was successful
Application installed on /home/pentaho/DockMaker-9.5
[ Console installation done ]
```

{% endtab %}

{% tab title="Pentaho Artefacts" %}
{% hint style="info" %}
DockMaker will attempt to download all artifacts associated with the requested container into an “Artifact Cache”.

Alternatively, the “Artifact Cache” folder can be pre-populated with artifacts by loading them into the artifact cache folder.
{% endhint %}

1. Copy Pentaho Server artefacts to DockMaker:

```bash
cd
cd ~/Packages/'Archive Build (Suggested Installation Method)'
cp * ~/DockMaker-9.5/dock-maker-9.5.0.0-240/artifactCache
```

2. Copy Pentaho Client artefacts to DockMaker:

```bash
cd
cd ~/Packages/'Client Tools'/'PDI (Spoon)'
cp pdi-ee-client-9.5.0.0-240-dist.zip ~/DockMaker-9.5/dock-maker-9.5.0.0-240/artifactCache
```

3. Check artefacts:

```bash
cd
cd ~/DockMaker-9.5/dock-maker-9.5.0.0-240/artifactCache
ls -al
```

***

**DockMaker**

{% hint style="info" %}
DockMaker is the Pentaho tool for building and deploying Pentaho containers.
{% endhint %}

<table><thead><tr><th width="207.5">Folder / File</th><th>Description</th></tr></thead><tbody><tr><td>artifactCache</td><td>This folder serves as the default storage location for any artifacts that are downloaded or required to setup the image. The location of this folder can be changed in the DockMaker.properties file.</td></tr><tr><td>containers</td><td>This has various files and templates that will be tapped when running the command line tool.</td></tr><tr><td>generatedFiles</td><td>This folder is created when the command line tool is executed. It contains all the file necessary to create a docker image and use docker compose to bring up the containers.</td></tr><tr><td>lib</td><td>Libraries</td></tr><tr><td>DockMaker.bat or DockMaker.sh</td><td>The command line for Windows and Linux, respectively.</td></tr><tr><td>DockMakerDown.bat or DockMakerDown.sh</td><td>A command to bring down, and remove, the containers and volumes used by the docker compose command.</td></tr></tbody></table>

{% embed url="<https://docs.hitachivantara.com/r/en-us/pentaho-data-integration-and-analytics/10.1.x/mk-95pdia001/pentaho-installation/docker-container-deployment-of-pentaho>" %}
Link to DockMaker
{% endembed %}

1. Edit the DockMaker.properties file:

```bash
nano ~/DockMaker-9.5/dock-maker-9.5.0.0-240/DockMaker.properties
```

{% hint style="info" %}
When uncommented, DockMaker will look for the Pentaho artefacts in the artifactCache directory before attempting to download.
{% endhint %}

```
21. # Downloaded artifacts get stored here
22. docker.server.artifactCache=./artifactCache
```

{% hint style="info" %}
Based on the artefact filename (or URL), the following variables are defined.
{% endhint %}

```
24. # Preset Variables are as follows:
25. #            ${version} = The version of the base server zip (ie: 9.2.0.0)
26. #         ${distNumber} = the build number of base server zip (ie: 657)
27. #       ${patchVersion} = The version of the patch file (ie: 9.2.0.3)
28. #    ${patchDistNumber} = The build number of the patch file (ie: 828)
29. #            ${edition} = ce or ee
30. #           ${pluginId} = 3 character plugin ID (ie: paz, pdd, or pir)
31. #              ${karId} = The unique ID for a kar. (ie: The kar file used on the command line such as cdh61)
```

{% hint style="info" %}
Comment out the following if you have copied over the Pentaho artefacts to the artifactCache directory.
{% endhint %}

```
# docker.download.host.prefix=http://YourDomainNameHere.com/basePath
```

2. Save & Close:

```
CTRL + o
Enter
CTRL + x
```

***

**registry.yml**

{% hint style="info" %}
The containers/registry.yml file contains information about what versions and combinations are supported by the command tool. The “databaseMap” section defines what databases can be used to host the Pentaho Server repository database.

The section for postgres is shown below:
{% endhint %}

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

{% hint style="info" %}
Two versions of Postgres are supported, 9.6 or 13.5.

* The fully qualified database names available on the command line will be “postgres/9.6” and “postgres/13.5”.
* The compose yml file that will serve as a template to this configuration is “dock-compose-postgres.yml” and the folder containing the DDL to define the tables can be found in the “db\_init\_postgres” folder.
* The docker image that will be pulled down is defined in “image” property and will be either “postgres:9.6” or “postgres:13.5”.
  {% endhint %}
  {% endtab %}

{% tab title="License" %}
{% hint style="info" %}
To ensure that the Pentaho Server uses the same location to store and retrieve your Pentaho licenses, you must create a PENTAHO\_INSTALLED\_LICENSE\_PATH system environment variable for your Pentaho user account if it does not exist.

It does not matter what location you choose; however, the location needs to be available to the user account(s) that run the Pentaho Server.
{% endhint %}

1. Unpack Pentaho licenses and move to installer directory:

```bash
cd
cd ~/Downloads
unzip Dev-Licenses.zip
mv *.lic ~/DockMaker-9.5/dock-maker-9.5.0.0-240/license-installer
```

2. Run the installer:

```bash
cd
cd ~/DockMaker-9.5/dock-maker-9.5.0.0-240/license-installer
sh install_license.sh install *.lic
```

```
/home/pentaho/DockMaker-9.5/dock-maker-9.5.0.0-240/license-installer
DEBUG: Using PENTAHO_JAVA_HOME
DEBUG: _PENTAHO_JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
DEBUG: _PENTAHO_JAVA=/usr/lib/jvm/java-11-openjdk-amd64/bin/java
DEBUG: PENTAHO_INSTALLED_LICENSE_PATH=
Subject:    Pentaho Analysis Enterprise Edition
Begin:      18/12/2023, 00:00
Expiration: 19/12/2024, 23:59
```

3. Set the path: installedLicenses.xml:

```bash
cd
sudo nano /etc/environment
```

4. Add the following to the bottom of the file:

```
# path to Pentaho licenses
export PENTAHO_INSTALLED_LICENSE_PATH=/home/pentaho/.pentaho/.installedLicenses.xml
```

5. Save:

```
CTRL + o
Enter
CTRL + x
```

5. Log out and back in to set the path:
6. Check the path:

```bash
env | grep PENTAHO_INSTALLED_LICENSE_PATH
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://academy.pentaho.com/pentaho-data-integration/data-integration/enterprise-solution/dockmaker.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
