amancevice / docker-superset

Docker image for Airbnb's Superset
https://hub.docker.com/r/amancevice/superset/
MIT License
957 stars 416 forks source link
docker python superset

Superset

version latest

Docker image for Superset.

This project is unofficial and not related to Superset or Apache.

Download

Download this image from the Docker registry:

docker pull amancevice/superset:<version>

Building

I DO NOT recommend building this image directly from the Dockerfile included in this repository.

If you wish to extend this image then the best course of action is to write your own Dockerfile that extends this image. Eg,

FROM amancevice/superset:<version>
USER root
# Your changes...
USER superset

Issues

Please ONLY file issues in this project that are related to Docker and DO include the Docker commands or compose configuration of your setup when filing issues (be sure to hide any secrets/passwords before submitting).

File issues/bugs with Superset at the source.

Please DO NOT files issues like "Please include <some-python-pip> in the Dockerfile," open a pull request for updates/enhancements.

Examples

Navigate to the examples directory to view examples of how to configure Superset with MySQL, PostgreSQL, or SQLite.

Versions

This repo is tagged in parallel with superset. Pulling amancevice/superset:0.18.5 will fetch the image of this repository running superset version 0.18.5. It is possible that the latest tag includes new features/support libraries but will usually be in sync with the latest semantic version.

Configuration

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.

View the contents of the examples directory to see some simple superset_config.py samples.

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.

Database Initialization

After starting the Superset server, initialize the database with an admin user and Superset tables using the superset-init helper script:

docker run --detach --name superset [options] amancevice/superset
docker exec -it superset superset-init

Upgrading

Upgrading to a newer version of superset can be accomplished by re-pulling amancevice/supersetat a specified superset version or latest (see above for more on this). Remove the old container and re-deploy, making sure to use the correct environmental configuration. Finally, ensure the superset database is migrated up to the head:

# Pull desired version
docker pull amancevice/superset

# Remove the current container
docker rm -f superset-old

# Deploy a new container ...
docker run --detach --name superset-new [options] amancevice/superset

# Upgrade the DB
docker exec superset-new superset db upgrade

# Sync the base permissions
docker exec superset-new superset init