使用Docker Compose部署Airbnb Superset的完整指南
【免费下载链接】superset 项目地址: https://gitcode.com/gh_mirrors/su/superset
前言
Apache Superset是一个现代化的企业级商业智能(BI)和数据分析平台,由Airbnb开源并贡献给Apache软件基金会。它提供了直观的可视化界面,支持多种数据源连接,能够帮助用户快速创建丰富的仪表盘和数据可视化。
本文将详细介绍如何使用Docker Compose来部署Superset,这是本地开发和测试Superset最快捷的方式。我们将从基础概念讲起,逐步深入到不同部署场景的配置方法。
Docker Compose部署概述
Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。对于Superset这样的复杂应用,它通常需要多个服务协同工作(如Web服务器、元数据库、缓存等),Docker Compose可以轻松管理这些服务。
Superset官方提供了三种主要的Docker Compose配置方式:
- 开发模式(docker-compose.yml):适合需要实时修改代码并立即看到效果的开发者
- 非开发模式(docker-compose-non-dev.yml):基于当前分支构建不可变镜像,适合测试
- 指定版本模式(docker-compose-image-tag.yml):直接从Docker镜像仓库拉取特定版本的镜像运行
环境准备
在开始之前,请确保您的系统满足以下要求:
- 已安装Docker引擎(版本20.10.0或更高)
- 已安装Git(用于克隆代码库)
- 建议使用Linux或Mac OSX系统(Windows支持不完善)
- 至少4GB内存(8GB以上更佳)
获取Superset代码
首先需要获取Superset的源代码:
git clone --depth=1 https://github.com/apache/superset.git
cd superset
--depth=1参数表示只克隆最新提交,减少下载量。
三种部署方式详解
1. 开发模式部署
开发模式会挂载本地代码目录到容器中,使代码修改能够实时反映在运行的Superset实例中。
docker compose up --build
特点:
- 前端和后端代码修改会实时生效
- 适合Superset二次开发
- 需要等待前端资源构建完成
优化建议:
- 如果本地内存不足,可以设置
BUILD_SUPERSET_FRONTEND_IN_DOCKER=false,然后在本地运行npm install && npm run dev - 遇到npm问题时,可以设置
NPM_RUN_PRUNE=true清理node_modules
2. 非开发模式部署
这种模式基于当前代码分支构建不可变镜像,适合测试当前分支的功能。
docker compose -f docker-compose-non-dev.yml up
特点:
- 构建完成后代码修改不会影响运行中的实例
- 启动后不需要等待前端构建
- 适合快速测试当前分支功能
3. 指定版本部署
这种方式直接从Docker镜像仓库拉取预构建的镜像运行,适合测试特定版本。
export TAG=3.1.1
git fetch --depth=1 origin tag $TAG
git checkout $TAG
docker compose -f docker-compose-image-tag.yml up
特点:
- 完全独立于本地代码
- 适合测试官方发布的稳定版本
- 需要指定
-dev后缀的标签(如3.0.0-dev)
重要配置说明
环境变量配置
Superset的Docker Compose配置主要通过环境变量控制:
docker/.env:默认环境变量配置docker/.env-local:本地覆盖配置(不会被提交到Git)
关键环境变量:
SUPERSET_LOAD_EXAMPLES:是否加载示例数据(默认为true)SCARF_ANALYTICS:是否启用遥测数据收集(默认为true)
元数据库注意事项
默认配置使用PostgreSQL作为元数据库,数据存储在Docker卷中:
- 不适用于生产环境:数据没有自动备份机制
- 持久化存储:即使容器删除,数据卷仍然保留
- 重置数据:删除相关Docker卷即可
访问Superset
部署完成后,可以通过以下方式访问:
- 浏览器访问:
http://localhost:8088 - 默认凭据:
- 用户名:admin
- 密码:admin
连接本地数据库
在Docker环境中连接宿主机数据库需要注意:
- 配置数据库允许来自Docker网络的连接
- 使用特殊主机名代替
localhost:- Mac/Ubuntu:
host.docker.internal - Linux:
172.18.0.1(或通过docker network inspect bridge查看网关IP)
- Mac/Ubuntu:
生产环境建议
虽然Docker Compose部署简单方便,但官方明确指出:
- 不适用于生产环境:缺乏高可用性支持
- 替代方案:建议使用Kubernetes(如minikube)进行单机生产部署
常见问题解决
-
前端加载慢:
- 增加系统内存
- 在本地构建前端资源
-
数据库连接问题:
- 确保数据库服务已正确配置网络访问
- 使用正确的主机名
-
版本不一致:
- 确保Git分支与Docker镜像版本匹配
总结
通过Docker Compose部署Superset是快速体验和开发Superset的最佳方式。本文详细介绍了三种不同的部署场景及其适用情况,帮助读者根据实际需求选择合适的部署方式。无论是开发调试、功能测试还是版本验证,Docker Compose都能提供便捷的解决方案。
记住,对于生产环境,应考虑更健壮的部署方案如Kubernetes。希望本指南能帮助您顺利开始Superset之旅!
【免费下载链接】superset 项目地址: https://gitcode.com/gh_mirrors/su/superset
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



