githubEdit

Build Docker Images

Overview

The scripts to build Pinot related docker images is located at herearrow-up-right.

You can access those scripts by running below command to checkout Pinot repo:

git clone [email protected]:apache/incubator-pinot.git pinot
cd pinot/docker/images

You can find current supported 3 images in this directory:

  • Pinot: Pinot all-in-one distribution image

  • Pinot-Presto: Presto image with Presto-Pinot Connector built-in.

  • Pinot-Superset: Superset image with Pinot connector built-in.

Pinot

This is a docker image of Apache Pinotarrow-up-right.

How to build a docker image

There is a docker build script which will build a given Git repo/branch and tag the image.

Usage:

./docker-build.sh [Docker Tag] [Git Branch] [Pinot Git URL]

This script will check out Pinot Repo [Pinot Git URL] on branch [Git Branch] and build the docker image for that.

The docker image is tagged as [Docker Tag].

Docker Tag: Name and tag your docker image. Default is pinot:latest.

Git Branch: The Pinot branch to build. Default is master.

Pinot Git URL: The Pinot Git Repo to build, users can set it to their own fork. Please note that, the URL is https:// based, not git://. Default is the Apache Repo: https://github.com/apache/incubator-pinot.git.

  • Example of building and tagging a snapshot on your own fork:

  • Example of building a release version:

  • Example of building current master branch as a snapshot:

How to publish a docker image

Script docker-push.sh publishes a given docker image to your docker registry.

In order to push to your own repo, the image needs to be explicitly tagged with the repo name.

  • You can also tag a built image, then push it.

Script docker-build-and-push.sh builds and publishes this docker image to your docker registry after build.

Kubernetes Examples

Please refer to Kubernetes Quickstart for deployment examples.

Pinot Presto

Docker image for Prestoarrow-up-right with Pinot integration.

This docker build project is specialized for Pinot.

How to build

Usage:

This script will check out Presto Repo [Presto Git URL] on branch [Git Branch] and build the docker image for that.

The docker image is tagged as [Docker Tag].

Docker Tag: Name and tag your docker image. Default is pinot-presto:latest.

Git Branch: The Presto branch to build. Default is master.

Presto Git URL: The Presto Git Repo to build, users can set it to their own fork. Please note that, the URL is https:// based, not git://. Default is the Apache Repo: https://github.com/prestodb/presto.git.

How to push

Configuration

Follow the instructionsarrow-up-right provided by Presto for writing your own configuration files under etc directory.

Volumes

The image defines two data volumes: one for mounting configuration into the container, and one for data.

The configuration volume is located alternatively at /home/presto/etc, which contains all the configuration and plugins.

The data volume is located at /home/presto/data.

Kubernetes Examples

Please refer to presto-coordinator.yamlarrow-up-right as k8s deployment example.

Pinot Superset

Docker image for Supersetarrow-up-right with Pinot integration.

This docker build project is based on Project docker-supersetarrow-up-right and specialized for Pinot.

How to build

Please modify file Makefile to change image and superset_version accordingly.

Below command will build docker image and tag it as superset_version and latest.

You can also build directly with docker build command by setting arguments:

How to push

Configuration

Follow the instructionsarrow-up-right provided by Apache Superset for writing your own superset_config.py.

Place this file in a local directory and mount this directory to /etc/superset inside the container. This location is included in the image's PYTHONPATH. Mounting this file to a different location is possible, but it will need to be in the PYTHONPATH.

Volumes

The image defines two data volumes: one for mounting configuration into the container, and one for data (logs, SQLite DBs, &c).

The configuration volume is located alternatively at /etc/superset or /home/superset; either is acceptable. Both of these directories are included in the PYTHONPATH of the image. Mount any configuration (specifically the superset_config.py file) here to have it read by the app on startup.

The data volume is located at /var/lib/superset and it is where you would mount your SQLite file (if you are using that as your backend), or a volume to collect any logs that are routed there. This location is used as the value of the SUPERSET_HOME environmental variable.

Kubernetes Examples

Please refer to superset.yamlarrow-up-right as k8s deployment example.

Last updated

Was this helpful?