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.
Stop Containers:
cd
cd ~/DockMaker-9.5/dock-maker-9.5.0.0-240/generatedFiles
docker compose down
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:
cd
cd DockMaker-9.5/dock-maker-9.5.0.0-240
sudo rm -rf generatedFiles
Configure Dockerfile
Check Docker is up and running:
docker info
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
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
Flag
Mandatory
Description
-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
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
cd
cd ~/DockMaker-9.5/dock-maker-9.5.0.0-240
sudo rm -rf generatedFiles
Check Docker
Check Docker is up and running:
docker info
Troubleshooting
If you receive the following error message:
Error response from daemon: cannot stop container: 67034c5ca58a: permission denied
Error response from daemon: cannot stop container: ff0171f749e8: permission denied
Run the following command:
sudo aa-remove-unknown
The problem is due to the docker package not installing a profile for docker in the AppArmor service, so docker is categorized as 'unknown' by AppArmor. The above command removes the profile for all unknown applications, so they are no longer restricted by AppArmor.
Configure Dockerfile
Check the Pentaho artefacts have been copied over to the artefactCache directory:
cd
cd ~/DockMaker-9.5/dock-maker-9.5.0.0-240/artifactCache
ls
Run the following command:
cd
cd ~/DockMaker-9.5/dock-maker-9.5.0.0-240
./DockMaker.sh -V 9.5.0.0/240/ee -T server -p 8085 -U --EULA_ACCEPT=true
💡 To automate the build and deploy add the flag: -X
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
Flag
Mandatory
Description
-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.
-T
No
-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.
The output is generates 2 Docker commands to build and deploy the image.
Build & Deploy Pentaho DI Server
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/di-server-9.5.0.0 .
💡 The -t flag is just shorthand instead of building the image and running docker tag afterwards to tag the image id - image name:tag
[+] Building 0.4s (19/19) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 5.96kB 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/openjdk:11 0.3s
=> [internal] load build context 0.0s
=> => transferring context: 828B 0.0s
=> [pack 1/6] FROM docker.io/library/openjdk:11@sha256:99bac5bf83633e3c7399aed725c8415e7b569 0.0s
=> CACHED [pack 2/6] RUN apt update; apt install -y libxtst6 libxi6 libxrender1 0.0s
=> CACHED [pack 3/6] RUN groupadd --gid 5000 pentaho && useradd --home-dir /home/pentaho 0.0s
=> CACHED [install_unpack 2/9] WORKDIR /opt/pentaho-installer/ 0.0s
=> CACHED [install_unpack 3/9] COPY ./stagedArtifacts/* /opt/pentaho-installer/ 0.0s
=> CACHED [install_unpack 4/9] RUN if [ ! -f "/opt/pentaho-installer/pentaho-server-ee-9.5.0 0.0s
=> CACHED [install_unpack 5/9] RUN if [ ! pentaho-server-ee-9.4.0.0-343-dist.zip = *"SNAPSHO 0.0s
=> CACHED [install_unpack 6/9] RUN if [ -f "LPpSV1hsvD28peed5T42bBH12iBH8iYcRc" ]; then 0.0s
=> CACHED [install_unpack 7/9] RUN if [ -f "LPpSV1hsvD28peed5T42bBH12iBH8iYcRc" ]; then 0.0s
=> CACHED [install_unpack 8/9] RUN if [ -f "LPpSV1hsvD28peed5T42bBH12iBH8iYcRc" ]; then 0.0s
=> CACHED [install_unpack 9/9] RUN if [ ! -z "" ]; then if [ ! -f "/opt/pentaho-inst 0.0s
=> CACHED [pack 4/6] COPY --from=install_unpack --chown=pentaho:pentaho /opt/pentaho/pentaho 0.0s
=> CACHED [pack 5/6] COPY ./entrypoint/ / 0.0s
=> CACHED [pack 6/6] WORKDIR /opt/pentaho/pentaho-server 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:345a7ef940897a2959f171a35c83ca9ca8add03e141715b020295cafe7c6ea48 0.0s
=> => naming to docker.io/pentaho/di-server-9.5.0.0
Run the following command to deploy:
cd
cd ~/DockMaker-9.5/dock-maker-9.5.0.0-240/generatedFiles
docker compose up -d