{"id":20984460,"url":"https://github.com/abhioncbr/docker-superset","last_synced_at":"2025-05-14T17:30:47.567Z","repository":{"id":49553811,"uuid":"155476899","full_name":"abhioncbr/docker-superset","owner":"abhioncbr","description":"Repository for Docker Image of Apache-Superset. [Docker Image: https://hub.docker.com/r/abhioncbr/docker-superset]","archived":false,"fork":false,"pushed_at":"2021-06-14T19:46:47.000Z","size":2048,"stargazers_count":103,"open_issues_count":10,"forks_count":55,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-02T20:53:36.624Z","etag":null,"topics":["analytics","apache","apache-superset","celery","dashboard","distributed-systems","docker","docker-compose","docker-container","docker-image","docker-superset","flask-application","flower","gunicorn","mysql","redis","sql"],"latest_commit_sha":null,"homepage":"https://abhioncbr.github.io/docker-superset","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abhioncbr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["abhioncbr"]}},"created_at":"2018-10-31T00:55:18.000Z","updated_at":"2025-03-16T08:59:26.000Z","dependencies_parsed_at":"2022-07-30T16:48:55.695Z","dependency_job_id":null,"html_url":"https://github.com/abhioncbr/docker-superset","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhioncbr%2Fdocker-superset","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhioncbr%2Fdocker-superset/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhioncbr%2Fdocker-superset/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhioncbr%2Fdocker-superset/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abhioncbr","download_url":"https://codeload.github.com/abhioncbr/docker-superset/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254194759,"owners_count":22030428,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics","apache","apache-superset","celery","dashboard","distributed-systems","docker","docker-compose","docker-container","docker-image","docker-superset","flask-application","flower","gunicorn","mysql","redis","sql"],"created_at":"2024-11-19T05:53:36.381Z","updated_at":"2025-05-14T17:30:42.560Z","avatar_url":"https://github.com/abhioncbr.png","language":"Shell","funding_links":["https://github.com/sponsors/abhioncbr"],"categories":[],"sub_categories":[],"readme":"# Inviting contributors for enhancing \u0026 maintaining the project. \n\n# docker-superset\nRepository for building [Docker](https://www.docker.com/) container of [Apache Superset](https://superset.incubator.apache.org/tutorial.html).\n\n[\u003cimg src=\"https://cloud.githubusercontent.com/assets/130878/20946612/49a8a25c-bbc0-11e6-8314-10bef902af51.png\" alt=\"Superset\" width=\"500\"/\u003e](https://superset.incubator.apache.org/tutorial.html)\n\n[![CircleCI](https://circleci.com/gh/abhioncbr/docker-superset/tree/master.svg?style=svg)](https://circleci.com/gh/abhioncbr/docker-superset/tree/master)\n[![License](http://img.shields.io/:license-Apache%202-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.txt)\n[![Code Climate](https://codeclimate.com/github/codeclimate/codeclimate/badges/gpa.svg)](https://codeclimate.com/github/abhioncbr/docker-superset)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\n* For understanding \u0026 knowing more about Superset, please follow [Official website]((https://superset.incubator.apache.org/tutorial.html)) and [![Join the chat at https://gitter.im/airbnb/superset](https://badges.gitter.im/apache/incubator-superset.svg)](https://gitter.im/airbnb/superset?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n* Similarly, for Docker follow [curated list of resources](https://github.com/veggiemonk/awesome-docker).\n\n## Images\n\n|Image|Pulls|Tags|\n|:---|:---:|:---:|\n|abhioncbr/docker-superset|[![Docker Pulls](https://img.shields.io/docker/pulls/abhioncbr/docker-superset.svg)](https://cloud.docker.com/u/abhioncbr/repository/docker/abhioncbr/docker-superset)|[tags](https://cloud.docker.com/repository/docker/abhioncbr/docker-superset/tags)|\n\n## Superset components stack\n- Enhanced/Modified version of the docker container of [apache-superset](https://github.com/apache/incubator-superset/tree/master/contrib/docker).\n- Superset version: Notation for representing version `X.YY.ZZzzz` which means either \n    * 0.36.0\n    * 0.35.0, 0.35.1\n    * 0.34.0, 0.34.0rc1  \n    * latest, 0.32.0rc2\n    * 0.29.0rc8, 0.29.0rc7, 0.29.0rc5, 0.29.0rc4  \n    * 0.28.1, 0.28.0\n- Backend database: MySQL\n- SqlLabs query async mode: Celery\n- Task queue \u0026 query cache: Redis\n- Image contains all [database plugin dependencies](docker-files/database-dependencies.txt) and elastic-search\n\n## Superset ports\n- superset portal port: 8088\n- superset celery flower port: 5555\n\n## Silent features of the docker image\n- multiple ways to start a container, i.e. either by using `docker-compose` or by using `docker run` command.\n- superset all components, i.e. web application, celery worker, celery flower UI can run in the same container or in different containers.\n- container first run sets required database along with examples and the Fabmanager user account with credentials `username: admin \u0026 password: admin`.\n- superset config file i.e [superset_config.py](config/superset_config.py) should be mounted to the container. **No need to rebuild image for changing configurations.** \n- the default configuration uses MySQL as a Superset metadata database and Redis as a cache \u0026 celery broker.\n- starting the container using `docker-compose` will start three containers. `mysql5.7` as the database, `redis3.4` as a cache \u0026 celery broker and superset container.\n    * expects multiple environment variables defined in [docker-compose.yml](docker-files/docker-compose.yml) file. Default environment variables are present in file [`.env`](docker-files/.env). \n    * override default environment variables either by editing `.env` file or passing through commands like `SUPERSET_ENV`.\n    * permissible value of `SUPERSET_ENV` can be either `local` or `prod`.\n    * in `local` mode one celery worker and superset flask-based superset web application run.\n    * in `prod` mode two celery workers and Gunicorn based superset web application run.\n - starting container using `docker run` can be a used for complete distributed setup, requires database \u0026 Redis URL for startup.\n    * single or multiple server(using load balancer) container can be spawned. In the server, Gunicorn based superset web application runs. \n    * multiple celery workers container running on same or different machines. In worker, celery worker \u0026 flower UI runs. \n\n## How to build the image\n   * [DockerFile](docker-files/Dockerfile) uses `superset-version` as a `build-arg`, for example: `0.28.0` or `0.29.0rc4`\n   * build image using `docker build` command\n        ```shell\n        docker build -t abhioncbr/docker-superset:\u003cversion-tag\u003e --build-arg SUPERSET_VERSION=\u003csuperset-version\u003e -f ~/docker-superset/docker-files/Dockerfile .\n        ```\n## How to run using Kitmatic\n* Simplest way for exploration purpose, using [Kitematic](https://kitematic.com)(Run containers through a simple, yet powerful graphical user interface.) \n    * Search abhioncbr/docker-superset Image on [docker-hub](https://hub.docker.com/r/abhioncbr/docker-superset/) \n        [\u003cimg src=\"Kitematic-search-docker-supeset.png\" alt=\"Kitematic-search-docker-supeset\"\u003e](Kitematic-search-docker-supeset.png)\n    \n    * Start a container through Kitematic UI.\n        [\u003cimg src=\"Kitematic-start-superset-container.png\" alt=\"Kitematic-start-superset-container\"\u003e](Kitematic-start-superset-container.png)    \n\n## How to run using docker commands\n* Through general docker commands -\n    * first pull a docker-superset image from [docker-hub](https://hub.docker.com/r/abhioncbr/docker-superset/) using either\n        ```shell\n        docker pull abhioncbr/docker-superset\n        ```    \n      or for specific superset version by providing version value    \n        ```shell\n        docker pull abhioncbr/docker-superset:\u003cversion-tag\u003e\n        ```   \n    \n    * Copy [superset_config.py](config/superset_config.py), [docker-compose.yml](docker-files/docker-compose.yml), and [.env](docker-files/.env) files. I am considering directory structure like below\n        ```\n        docker-superset\n             |_ config\n             |    |_superset_config.py\n             |\n             |_docker-files\n             |    |_docker-compose.yml\n             |    |_.env\n        \n        ```   \n\n    * using `docker-compose`:\n        * starting a superset image as a `superset` container in a **local** mode:\n            ```shell\n            cd docker-superset/docker-files/ \u0026\u0026 docker-compose up -d\n            ```\n          or for passing some different environment variables values like below\n            ```shell\n            cd docker-superset/docker-files/ \u0026\u0026 SUPERSET_ENV=local SUPERSET_VERSION=\u003cversion-tag\u003e docker-compose up -d\n            ```           \n        \n        * starting a superset image as a `superset` container in a **prod** mode:\n            ```shell\n            cd docker-superset/docker-files/ \u0026\u0026 SUPERSET_ENV=prod SUPERSET_VERSION=\u003cversion-tag\u003e docker-compose up -d\n            ```\n            \n    * using `docker run`:    \n        * starting a superset image as a `server` container:\n            ```shell\n            cd docker-superset \u0026\u0026 docker run -p 8088:8088 -v config:/home/superset/config/ abhioncbr/docker-superset:\u003cversion-tag\u003e cluster server \u003csuperset_metadata_db_url\u003e \u003credis_url\u003e\n            ```        \n        * starting a superset image as a `worker` container:\n            ```shell\n             cd docker-superset \u0026\u0026 docker run -p 5555:5555 -v config:/home/superset/config/ abhioncbr/docker-superset:\u003cversion-tag\u003e cluster worker \u003csuperset_metadata_db_url\u003e \u003credis_url\u003e\n            ```    \n       \n    [\u003cimg src=\"docker-superset_execution.png\" alt=\"Superset\"\u003e](docker-superset_execution.png)   \n         \n## Distributed execution of superset\n* As mentioned above, docker image of superset can be leveraged to run in complete distributed run\n    * load-balancer in front for routing the request from the client to one server container.\n    * multiple docker-superset container in `server` mode for serving the UI of the superset.\n    * multiple docker-superset containers in `worker` mode for executing the SQL queries in an async mode using celery executor.\n    * centralised Redis container or Redis-cluster for serving as cache layer and celery task queues for workers.\n    * centralised superset metadata database.\n* Image below depicts the docker-superset distributed platform:\n    [\u003cimg src=\"distributed-superset-setup.png\" alt=\"Distributed-Superset\"\u003e](distributed-superset-setup.png)\n\n ## Published Posts\n * [Apache Superset in the production environment](https://medium.com/@abhioncbr/apache-superset-in-the-production-environment-92e914102cc5)\n * [Docker image of Apache Superset](https://medium.com/faun/docker-image-of-apache-superset-400cf4855b9)\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhioncbr%2Fdocker-superset","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabhioncbr%2Fdocker-superset","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhioncbr%2Fdocker-superset/lists"}