
scribesecurity/superset本镜像基于 Apache Superset 构建,针对 Scribe Hub 环境进行定制优化,提供数据可视化与分析能力。其核心用途是帮助 Scribe Hub 用户快速构建交互式数据仪表板、执行 SQL 探索分析,并与 Scribe Hub 生态系统深度集成,简化数据洞察流程。
bashdocker run -d \ --name scribe-hub-superset \ -p 8088:8088 \ -e SCRIBE_HUB_API_URL="[***]" \ -e SECRET_KEY="your-superset-secret-key" \ scribe-hub/superset:latest
bashdocker run -d \ --name scribe-hub-superset \ -p 8088:8088 \ -v ./superset-data:/app/superset_home \ # 持久化元数据、配置和缓存 -v ./scribe-hub-drivers:/app/drivers \ # 挂载 Scribe Hub 数据源驱动(如需要) -e SCRIBE_HUB_API_URL="[***]" \ -e SECRET_KEY="your-superset-secret-key" \ -e DB_TYPE="postgresql" \ # 元数据库类型(默认 sqlite,生产建议 postgresql/mysql) -e DB_HOST="superset-db" \ -e DB_PORT="5432" \ -e DB_USER="superset" \ -e DB_PASSWORD="superset-db-password" \ -e DB_NAME="superset_metadata" \ scribe-hub/superset:latest
yamlversion: '3.8' services: superset: image: scribe-hub/superset:latest container_name: scribe-hub-superset restart: unless-stopped ports: - "8088:8088" environment: - SECRET_KEY=your-strong-secret-key-here - SCRIBE_HUB_API_URL=[***] - SCRIBE_HUB_SSO_ENABLED=true - SCRIBE_HUB_SSO_CLIENT_ID=your-sso-client-id - SCRIBE_HUB_SSO_CLIENT_SECRET=your-sso-client-secret - DB_TYPE=postgresql - DB_HOST=postgres - DB_PORT=5432 - DB_USER=superset - DB_PASSWORD=secure-db-password - DB_NAME=superset_metadata - CACHE_TYPE=redis - REDIS_HOST=redis - REDIS_PORT=6379 volumes: - superset-data:/app/superset_home # 持久化元数据、上传文件等 - ./superset_config.py:/app/pythonpath/superset_config.py # 自定义配置覆盖 depends_on: - postgres - redis postgres: # 元数据库(生产环境建议使用外部托管数据库) image: postgres:14-alpine container_name: superset-postgres restart: unless-stopped environment: - POSTGRES_USER=superset - POSTGRES_PASSWORD=secure-db-password - POSTGRES_DB=superset_metadata volumes: - postgres-data:/var/lib/postgresql/data redis: # 缓存服务(用于查询结果缓存、会话管理) image: redis:7-alpine container_name: superset-redis restart: unless-stopped volumes: - redis-data:/data volumes: superset-data: postgres-data: redis-data:
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
SECRET_KEY | Superset 应用密钥(必填,建议 32 位以上随机字符串) | 无(启动时需手动指定) |
SCRIBE_HUB_API_URL | Scribe Hub API 基础地址(用于集成数据源和元数据) | [***] |
SCRIBE_HUB_SSO_ENABLED | 是否启用 Scribe Hub SSO 认证(true/false) | false |
SCRIBE_HUB_SSO_CLIENT_ID | Scribe Hub SSO 客户端 ID(启用 SSO 时必填) | 无 |
DB_TYPE | 元数据库类型(支持 sqlite/postgresql/mysql) | sqlite |
DB_HOST/DB_PORT | 元数据库地址和端口(非 sqlite 时必填) | 无 |
DB_USER/DB_PASSWORD | 元数据库用户名和密码(非 sqlite 时必填) | 无 |
DB_NAME | 元数据库名称 | superset_metadata |
CACHE_TYPE | 缓存类型(simple/redis/memcached,生产建议 redis) | simple |
bash# 进入容器 docker exec -it scribe-hub-superset bash # 执行初始化命令(创建管理员用户、加载示例数据等) superset fab create-admin \ --username admin \ --firstname Admin \ --lastname User \ --email *** \ --password your-admin-password # 初始化数据库(仅首次启动需要) superset db upgrade # 加载内置角色和权限 superset init # (可选)加载 Scribe Hub 示例仪表板模板 superset load_examples --source=scribe_hub
启动后,通过 http://<容器宿主机IP>:8088 访问 Superset 界面,使用创建的管理员账号或 Scribe Hub SSO 账号登录。
通过挂载 superset_config.py 覆盖默认配置(示例内容):
python# ./superset_config.py from datetime import timedelta # Scribe Hub 数据源配置 SCRIBE_HUB_DATA_SOURCES = { "data_lake": {"type": "delta_lake", "path": "/data/scribe-hub/delta"}, "metadata_db": {"type": "postgresql", "uri": "postgresql://user:pass@metadata-db:5432/metadata"} } # 会话配置(与 SSO 保持一致) SESSION_COOKIE_SECURE = True PERMANENT_SESSION_LIFETIME = timedelta(hours=8) # 缓存配置 CACHE_CONFIG = { "CACHE_TYPE": "RedisCache", "CACHE_REDIS_URL": "redis://redis:6379/1", "CACHE_DEFAULT_TIMEOUT": 3600 # 缓存 1 小时 } # 允许的上传文件类型(仅 Scribe Hub 相关) ALLOWED_UPLOAD_EXTENSIONS = {"csv", "json", "parquet", "scribe"}
superset-data 卷或外部元数据库(PostgreSQL/MySQL)superset_config.py 及环境变量配置superset db dump)SECRET_KEY,启用 HTTPS(通过反向代理如 Nginx),并限制数据库访问权限ASYNC_QUERIES=true)

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务