docker - IITDBGroup/gprom GitHub Wiki

Docker Support

We have automated builds setup for several docker images that enable users to quickly setup a working GProM system. These images are available on https://hub.docker.com/.

TLDR

Run the gprom repl on the included duckdb database:

docker run --rm -ti iitdbgroup/gprom:latest

Welcome to the GProM 1.0.3 command line interface
Please input a SQL command, '\q' to exit the program, or '\h' for help
======================================================================

Oracle SQL - DuckDB:/dbs/duckdb.db$PROVENANCE OF (SELECT sum(a) FROM r);
 SUM(A) | PROV_R_A | PROV_R_B |
-------------------------------
 6      | 1        | 1        |
 6      | 1        | 2        |
 6      | 2        | 1        |
 6      | 2        | 3        |
Oracle SQL - DuckDB:/dbs/duckdb.db$\q

Use a different backend, your own database, the Datalog frontend:

# use sqlite db in the image
docker run --rm -ti iitdbgroup/gprom:latest gprom -backend sqlite -db /dbs/sqlite.db

# connect to postgres run in a different container
docker run --name my-postgres -e POSTGRES_PASSWORD=test -d postgres
docker run --rm --link my-postgres:postgres -ti iitdbgroup/gprom:latest gprom -backend postgres -host postgres -user postgres -port 5432 -passwd test -db postgres

# connect to postgres running on your local host (mac), user postgres
docker run --rm -ti iitdbgroup/gprom:latest gprom -backend postgres -host host.docker.internal -user postgres -passwd test -port 5432 -db postgres

# mount your own duckdb database
docker run --rm -v /Users/lord_pretzel/systems/duckdb:/mydbs -ti iitdbgroup/gprom:latest gprom -backend duckdb -db /mydbs/tpch-10gb.db

# use the Datalog frontend instead of the SQL frontend
docker run --rm -ti iitdbgroup/gprom:latest gprom -frontend dl

Overview of images

  • docker pull iitdbgroup/gprom: Oracle linux image with preinstalled GProM compiled that supports the postgres, duckdb, sqlite, monetdb, oracle, and mssql backends. The image is build for amd64 and arm64 (the arm image does not support the mssql backend). Per default runs gprom CLI using the duckdb backend and connects to an example database /dbs/duckdb.db.
  • docker pull iitdbgroup/gprom-build-env: This image is used for CI to build gprom in an environment with all dependencies preinstalled
  • docker pull iitdbgroup/gprom-dev: An image that with a desktop gui accessible through VNC. This is meant for debugging GProM on linux to use tools like valgrind.

Image iidbgroup/gprom

The iitdbgroup/gprom image has gprom installed under /gprom/install/bin/gprom. The source code git repository is available under /gprom/src. The image is setup to start the gprom CLI when a container is created based on the image. To override this change the --entrypoint to the command you would like to run, e.g.,

docker run -ti --rm --entrypoint /bin/bash iitdbgroup/gprom-ubuntu-example-sqlite

would create an interactive bash shell.

The included gprom is build with support for all backends: postgres, duckdb, sqlite, monetdb, oracle, and mssql. This image comes in an amd64 and arm64 version. The arm version does not support the mssql backend.