The scripts to build Pinot related docker images is located at here
You can access those scripts by running below command to checkout Pinot repo:
git clone git@github.com:apache/incubator-pinot.git pinot cd pinot/docker/images
You can find current supported 3 images in this directory:
This is a docker image of Apache Pinot
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.
./docker-build.sh pinot_fork:snapshot-5.2 snapshot-5.2 https://github.com/your_own_fork/pinot.git
./docker-build.sh pinot:release-0.1.0 release-0.1.0 https://github.com/apache/incubator-pinot.git
./docker-build.sh apachepinot/pinot:0.3.0-SNAPSHOT master
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.
[apachepinot/pinot](https://hub.docker.com/u/apachepinot/repository/docker/apachepinot/pinot) dockerHub repo../docker-push.sh apachepinot/pinot:latest
docker tag pinot:release-0.1.0 apachepinot/pinot:release-0.1.0 docker push apachepinot/pinot:release-0.1.0
Script docker-build-and-push.sh builds and publishes this docker image to your docker registry after build.
Example of building and publishing an image to [apachepinot/pinot](https://hub.docker.com/u/apachepinot/repository/docker/apachepinot/pinot) dockerHub repo.
./docker-build-and-push.sh apachepinot/pinot:latest master https://github.com/apache/incubator-pinot.git
Please refer to Kubernetes Quickstart for deployment examples.
Docker image for Presto with Pinot integration. This docker build project is specialized for Pinot.
Usage:
./docker-build.sh [Docker Tag] [Git Branch] [Presto 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.
docker push apachepinot/pinot-presto:latest
Follow the instructions provided by Presto for writing your own configuration files under etc directory.
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.
Please refer to presto-coordinator.yaml as k8s deployment example.
Docker image for Superset with Pinot integration. This docker build project is based on Project docker-superset and specialized for Pinot.
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.
make latest
You can also build directly with docker build command by setting arguments:
docker build \ --build-arg NODE_VERSION=latest \ --build-arg PYTHON_VERSION=3.6 \ --build-arg SUPERSET_VERSION=0.34.1 \ --tag apachepinot/pinot-superset:0.34.1 \ --target build .
How to push
make push
Follow the instructions 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.
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.
Please refer to superset.yaml as k8s deployment example.