Pentaho is a Business Intelligence (BI) software company that offers Pentaho Business Analytics, a suite of open source products which provide data integration, OLAP services, reporting, dashboarding, data mining and ETL capabilities.
Pentaho has clearly stated that they will not be providing automated deployment solutions for their products. This is a problem since the deployment process is quite complicated.This docker project provides a much simpler deployment mechanism. It is not perfect, but with your help it can get better every day. :-)
It is based on some really splendid work done by Wellington Marinho.
- PostgreSQL 9.4
postgres:9.4-alpine
worked nicely for me
- Start a PostgreSQL server
docker run -d -p 5432:5432 --name postgres postgres:9.4-alpine
- Run once for testing and auto-clean container
docker run --rm -it --link postgres:postgres \
-e PGHOST=postgres -e PGUSER=postgres -e PGPASSWORD= -p 8080:8080 ca0abinary/docker-pentaho
- Start in bash, prior to any scripts having executed, auto-clean (for debugging)
docker run --rm -it --link postgres:postgres \
-e PGHOST=postgres -e PGUSER=postgres -e PGPASSWORD= -p 8080:8080 \
--entrypoint bash ca0abinary/docker-pentaho
- Run as a service
docker run -d --link postgres:postgres \
-e PGHOST=postgres -e PGUSER=postgres -e PGPASSWORD= -p 8080:8080 \
ca0abinary/docker-pentaho
It's possible to run without PostgreSQL and only use the hsqldb.
If you want your data to be preserved in the event of container loss, you should keep it in a data container or volume map.
- HSQLDB
- Jackrabbit stores files locally at
/opt/pentaho/server/pentaho-server/pentaho-solutions/system/jackrabbit/repository
Example:
docker run --rm -it \
-v ./config/systemListeners.xml:/opt/pentaho/server/pentaho-server/pentaho-solutions/system/systemListeners.xml \
-v /mnt/nfs-share/pentaho/hsqldb:/opt/pentaho/server/pentaho-server/data/hsqldb \
-v /mnt/nfs-share/pentaho/repository:/opt/pentaho/server/pentaho-server/pentaho-solutions/system/jackrabbit/repository \
-p 8080:8080 ca0abinary/docker-pentaho
PGHOST
The hostname or IP of the postgresql serverPGPORT
The port number of the postgreql service(default 5432)
PGDATABASE
The database name to use(default postgres)
PGUSER
The admin username (used for creating databases / database users)(default pgadmin)
PGPASSWORD
The admin password(default pgadmin.)
admin
- Administrator.pat
- Business Analyst.suzy
- Power User.tiffany
- Report Author.
Default password is password
.
The simplest docker-compose.yml
file would be:
version: "3"
services:
# Pentaho BI
pentaho:
container_name: pentaho
image: ca0abinary/docker-pentaho
ports:
- "8080:8080"
volumes:
- ./config/systemListeners.xml:/opt/pentaho/server/pentaho-server/pentaho-solutions/system/systemListeners.xml
- pentaho-hsqldb-data:/opt/pentaho/server/pentaho-server/data/hsqldb
- pentaho-jackrabbit-data:/opt/pentaho/server/pentaho-server/pentaho-solutions/system/jackrabbit/repository
# Data volumes
volumes:
pentaho-hsqldb-data:
pentaho-jackrabbit-data:
When using PostgreSQL docker-compose.yml
file would be:
version: "3"
services:
# Pentaho BI
pentaho:
container_name: pentaho
image: ca0abinary/docker-pentaho
depends_on:
- pentaho-pg
ports:
- "8080:8080"
environment:
- PGHOST=pentaho-pg
- PGUSER=pentaho
- PGPASSWORD=password
volumes:
- ./config/systemListeners.xml:/opt/pentaho/server/pentaho-server/pentaho-solutions/system/systemListeners.xml
- pentaho-hsqldb-data:/opt/pentaho/server/pentaho-server/data/hsqldb
- pentaho-jackrabbit-data:/opt/pentaho/server/pentaho-server/pentaho-solutions/system/jackrabbit/repository
# PostgreSQL Database for Pentaho BI
pentaho-pg:
container_name: pentaho-pg
image: postgres:9.4
environment:
- POSTGRES_USER=pentaho
- POSTGRES_PASSWORD=password
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- pentaho-pg-data:/var/lib/postgresql/data/pgdata
healthcheck:
test: pg_isready -U pgadmin || exit 1
interval: 30s
timeout: 10s
retries: 3
# Data volumes
volumes:
pentaho-hsqldb-data:
pentaho-jackrabbit-data:
pentaho-pg-data: