Docker is an easy way to get started with Superset.
The /app/pythonpath folder is mounted from ./docker/pythonpath_dev which contains a base configuration ./docker/pythonpath_dev/superset_config.py intended for use with local development.
To override environment variables locally, create a ./docker/.env-local file (git-ignored). This file will be loaded after .env and can override any settings.
In order to override configuration settings locally, simply make a copy of ./docker/pythonpath_dev/superset_config_local.example into ./docker/pythonpath_dev/superset_config_docker.py (git-ignored) and fill in your overrides.
To customize the WebSocket server configuration, create ./docker/superset-websocket/config.json (git-ignored) based on ./docker/superset-websocket/config.example.json.
Then update the superset-websocket.volumes config to mount it.
For advanced Docker Compose customization, create a docker-compose-override.yml file (git-ignored) to override or extend services without modifying the main compose file.
If you want to add Python packages in order to test things like databases locally, you can simply add a local requirements.txt (./docker/requirements-local.txt) and rebuild your Docker stack.
Steps:
./docker/requirements-local.txtdocker compose down -vdocker compose upThe database will initialize itself upon startup via the init container (superset-init). This may take a minute.
To run the container, simply run: docker compose up
After waiting several minutes for Superset initialization to finish, you can open a browser and view http://localhost:8088 to start your journey.
While running, the container server will reload on modification of the Superset Python and JavaScript source code. Don't forget to reload the page to take the new frontend into account though.
It is possible to run Superset in non-development mode by using docker-compose-non-dev.yml. This file excludes the volumes needed for development.
If you are attempting to build on macOS and it exits with 137 you need to increase your Docker resources. See instructions here (search for memory)