文章目录
-
- [使用 Docker 部署](#使用 Docker 部署)
- [使用 Docker Compose 部署](#使用 Docker Compose 部署)
- 参考文章

以下是使用 Docker 部署 Superset 并将存储配置为 MySQL 的详细步骤:
使用 Docker 部署
-
获取Superset镜像:
-
使用Docker从官方仓库拉取Superset镜像:
shelldocker pull apache/superset:4.0.0
-
-
创建 MySQL 数据库:
-
登录到 MySQL 数据库,执行以下命令创建用于 Superset 的数据库和用户:
sqlCREATE USER 'superset'@'%' IDENTIFIED BY 'your_password'; CREATE DATABASE superset; GRANT ALL PRIVILEGES ON superset.* TO 'superset'@'%'; FLUSH PRIVILEGES;
请根据实际情况修改数据库名称、用户名和密码。
-
-
配置 Superset 使用 MySQL:
-
创建一个挂载目录并定义 Superset 的配置文件:
bashmkdir -p /data/docker/superset/conf touch /data/docker/superset/conf/superset_config.py
-
编辑配置文件
/opt/docker/superset/superset_config.py
,设置 Superset 使用 MySQL 数据库:pythonSQLALCHEMY_DATABASE_URI = 'mysql://superset:your_password@ip:port/superset' SECRET_KEY = 'your_secret_key'
-
请将
your_password
替换为前面设置的 MySQL 用户密码,ip:port
替换为数据库所在服务器的IP地址和端口。your_secret_key
替换为一个安全的密钥, 运行命令openssl rand -base64 42
生成。
-
-
启动Superset容器
-
启动 Superset 容器时,将本地配置文件挂载到容器中:
bashdocker run \ -d \ --name superset \ -p 8088:8088 \ -e SUPERSET_CONFIG_PATH="/app/superset/superset_config.py" \ -v /data/docker/superset/conf/superset_config.py:/app/superset/superset_config.py \ apache/superset:4.0.0
-
其中:
-
-d
表示后台运行容器。 -
--name superset
为容器指定一个名称。 -
-p 8088:8088
将容器的8088端口映射到宿主机的8088端口。 -
-e SUPERSET_CONFIG_PATH="/app/superset/superset_config.py"
设置环境变量。 -
-v /data/docker/superset/conf/superset_config.py:/app/superset/superset_config.py
将宿主机的配置文件挂载到容器中。 -
apache/superset:4.0.0
指定要使用的Superset镜像和版本4.0.0。
-
-
注意:
- 启动容器命令一定要设置环境变量
-e SUPERSET_CONFIG_PATH="/app/superset/superset_config.py"
, 否则挂载配置文件无效。
- 启动容器命令一定要设置环境变量
-
-
初始化 Superset
-
进入 Superset 容器:
bashdocker exec -it superset /bin/bash
-
在容器内部,使用以下命令完成初始化:
bash# Create an admin user in your metadata database superset fab create-admin \ --username admin \ --firstname Superset \ --lastname Admin \ --email [email protected] \ --password admin # initialize the database: superset db upgrade # Create default roles and permissions superset init
-
-
访问 Superset:
打开浏览器,访问
http://localhost:8088
,使用创建的管理员账户登录,即可开始使用 Superset。
使用 Docker Compose 部署
-
编写一个
docker-compose.yml
文件,内容如下:yamlversion: '3' services: superset: image: apache/superset:4.0.0 container_name: superset ports: - "8088:8088" environment: - SUPERSET_CONFIG_PATH=/app/superset/superset_config.py volumes: - /data/docker/superset/conf/superset_config.py:/app/superset/superset_config.py restart: unless-stopped
- 这个 Docker Compose 文件等效于您提供的
docker run
命令。它会:- 使用
apache/superset:4.0.0
镜像创建一个名为superset
的服务 - 将容器的 8088 端口映射到宿主机的 8088 端口
- 设置环境变量
SUPERSET_CONFIG_PATH
指向/app/superset/superset.py_config
- 将宿主机的
/data/docker/superset/conf/superset_config.py
文件挂载到容器的/app/superset/superset_config.py
路径 - 设置容器在非正常停止时自动重启
- 使用
- 这个 Docker Compose 文件等效于您提供的
-
启动Superset容器
请将其保存为
docker-compose.yml
,然后运行以下命令:bashdocker-compose up -d
参考文章
Superset 官网
Quick Setup: Configure Superset with Docker
Docker 安装Apache Superset 并实现汉化和快速入门