BA & DI Servers

Build & Deploy BA & DI Pentaho Server Containers ..

The Container 'image' build is completed in 2 stages:

  • Stage 1: validates required packages based on parameters/configuration selected. Any declared Plugin Packages, Service Packs are 'exploded' and added to the base 'image'.

  • Stage 2: is to build and deploy the final 'Image'.

Pentaho BA Server consists of all the server plugins:

  • PAZ - Analyzer

  • PIR - Interactive Reporting

  • PDD - Dashboard Designer

Delete previous Pentaho Containers

Only perform the Tasks in this section if you have previously built & deployed a Pentaho container.

To ensure a clean environment:

  • delete the generatedFiles directory.

You can obviously rename the directory and reference.

  • delete all Containers, Volumes and Images.

  1. Stop Containers:

cd
cd ~/DockMaker-9.5/dock-maker-9.5.0.0-240/generatedFiles
docker compose down
  1. Delete all Containers and Images:

The next command will remove everything .. use with caution ..

If you wish to remove just the specific Pentaho Containers and Images via the command line:

docker ps - lists containers

docker rm <container-id>

docker images -a - retrieves image ids

docker rmi <image-id> <image-id> ...

docker rm -vf $(docker ps -aq)
docker rmi -f $(docker images -aq)
  1. Delete the generatedFiles directory:

cd
cd DockMaker-9.5/dock-maker-9.5.0.0-240
sudo rm -rf generatedFiles

Configure Dockerfile

  1. Check Docker is up and running:

docker info
  1. Check the Pentaho artefacts have been copied over to the artifactCache directory:

cd
cd DockMaker-9.5/dock-maker-9.5.0.0-240/artifactCache
ls
  1. Run the following command:

cd
cd ~/DockMaker-9.5/dock-maker-9.5.0.0-240
sh DockMaker.sh -V 9.5.0.0/240/ee -A std -p 8085 -U --EULA_ACCEPT=true

To automate the build and deploy add the flag: -X

The output generates 2 Docker commands to build and deploy the image.

Warning: Nashorn engine is planned to be removed from a future JDK release
Downloading Artifacts
 skipping download of pentaho-server-ee-9.5.0.0-240-dist.zip it is already downloaded
Staging artifacts
Modifying Docker File
Docker File successfully modified
NOT EXECUTED: sudo docker build -f /home/installer/DockMaker-9.5/dock-maker-9.5.0.0-240/generatedFiles/Dockerfile -t pentaho/pentaho-server:9.5.0.0 /home/pentaho/DockMaker-9.5/dock-maker-9.5.0.0-240/generatedFiles
NOT EXECUTED: sudo docker-compose -f /home/installer/DockMaker-9.5/dock-maker-9.5.0.0-240/generatedFiles/docker-compose.yml up

FlagMandatoryDescription

-V

Yes

The version of the pentaho server to download as a base installation followed by a "/", followed by the distribution build number, followed by another “/”, followed by "ce" or "ee". For example "9.5.0.0/240/ee" installs pentaho server-ee version 9.5.0.0 build 240.

-A

No

Contains acronyms for the plugin products to be installed plugin types are "std", "paz", "pdd" and "pir". Enter all plugins to install, separated with commas, or leave blank to install no additional plugins.

std

No

A special entry that will add all the server plugins without the need to specify them individually.

-p

No

Sets the tomcat port number to use for server communication. If omitted, it uses port 8081 for the server, and 8082 for carte.

-U

No

Set this flag to re-use any existing downloaded artifacts. If omitted, artifacts will always be downloaded.


Build & Deploy Pentaho BA server

  1. Run the following command to build the DI server image:

cd
cd ~/DockMaker-9.5/dock-maker-9.5.0.0-240/generatedFiles
docker build -t pentaho/ba-server-9.5.0.0 .

The -t flag is for docker tag with the image id - image name:tag

[+] Building 89.1s (9/18)                                                                                                                            
[+] Building 89.2s (9/18)                                                                                                                            
[+] Building 89.4s (9/18)                                                                                                                            
[+] Building 157.1s (18/19)                                                                                                                          
 => [internal] load build definition from Dockerfile                                                                                            0.0s
 => => transferring dockerfile: 5.97kB                                                                                                          0.0s
 => [internal] load .dockerignore                                                                                                               0.0s
 => => transferring context: 2B                                                                                                                 0.0s
 => [internal] load metadata for docker.io/library/openjdk:11                                                                                 157.0s
 => [internal] load build context                                                                                                              17.8s
 => => transferring context: 1.68GB                                                                                                            16.0s
 => [install_unpack 1/9] FROM docker.io/library/openjdk:11@sha256:99bac5bf83633e3c7399aed725c8415e7b569b54e03e4599e580fc9cdb7c21ab             17.8s
 => => resolve docker.io/library/openjdk:11@sha256:99bac5bf83633e3c7399aed725c8415e7b569b54e03e4599e580fc9cdb7c21ab                             0.0s
 => => sha256:001c52e26ad57e3b25b439ee0052f6692e5c0f2d5d982a00a8819ace5e521452 55.00MB / 55.00MB                                                1.4s
 => => sha256:2068746827ec1b043b571e4788693eab7e9b2a95301176512791f8c317a2816a 10.88MB / 10.88MB                                                0.7s
 => => sha256:99bac5bf83633e3c7399aed725c8415e7b569b54e03e4599e580fc9cdb7c21ab 1.04kB / 1.04kB                                                  0.0s
 => => sha256:e81b7f317654b0f26d3993e014b04bcb29250339b11b9de41e130feecd4cd43c 1.79kB / 1.79kB       
 ....
  1. Run the following command to deploy:

cd
cd ~/DockMaker-9.5/dock-maker-9.5.0.0-240/generatedFiles
docker compose up -d
+] Running 15/16
 ⠿ repository Pulled                                                       6.7s
   ⠿ 1cb79db8a9e7 Pull complete                                            1.7s
   ⠿ f6bae7873dd7 Pull complete                                            1.9s
   ⠿ 8f7722dc50a7 Pull complete                                            2.0s
   ⠿ e8622b8cb6f3 Pull complete                                            2.0s
   ⠿ d6d74bba3a57 Pull complete                                            2.3s
   ⠿ 874d4d2a09fd Pull complete                                            2.4s
   ⠿ 2d87c3a4038c Pull complete                                            2.5s
   ⠿ f955a6cf127b Pull complete                                            2.5s
   ⠿ f62dc55c568d Pull complete                                            5.0s
   ⠿ 4e2c4902efbd Pull complete                                            5.0s
   ⠿ 01c676df543a Pull complete                                            5.1s
   ⠿ 1e3d335ef0b7 Pull complete                                            5.1s
   ⠿ 11087f2b0d87 Pull complete                                            5.2s
   ⠿ 4b9a74ac6ea0 Pull complete                                            5.2s
 ⠿ pentahoServer Warning                                                   1.1s
[+] Building 32.5s (18/19)                                                      
 => [internal] load build definition from Dockerfile                       0.0s
 => => transferring dockerfile: 5.97kB                                     0.0s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [internal] load metadata for docker.io/library/openjdk:11             32.5s
 => [internal] load build context                                         31.8s
 => => transferring context: 1.68GB       
 ....
  1. Take a look at the containers in Visual Studio Code or Portainer.

Last updated