使用Docker Compose部署Airbnb Superset的完整指南

使用Docker Compose部署Airbnb Superset的完整指南

【免费下载链接】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配置方式:

  1. 开发模式(docker-compose.yml):适合需要实时修改代码并立即看到效果的开发者
  2. 非开发模式(docker-compose-non-dev.yml):基于当前分支构建不可变镜像,适合测试
  3. 指定版本模式(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环境中连接宿主机数据库需要注意:

  1. 配置数据库允许来自Docker网络的连接
  2. 使用特殊主机名代替localhost
    • Mac/Ubuntu:host.docker.internal
    • Linux:172.18.0.1(或通过docker network inspect bridge查看网关IP)

生产环境建议

虽然Docker Compose部署简单方便,但官方明确指出:

  • 不适用于生产环境:缺乏高可用性支持
  • 替代方案:建议使用Kubernetes(如minikube)进行单机生产部署

常见问题解决

  1. 前端加载慢

    • 增加系统内存
    • 在本地构建前端资源
  2. 数据库连接问题

    • 确保数据库服务已正确配置网络访问
    • 使用正确的主机名
  3. 版本不一致

    • 确保Git分支与Docker镜像版本匹配

总结

通过Docker Compose部署Superset是快速体验和开发Superset的最佳方式。本文详细介绍了三种不同的部署场景及其适用情况,帮助读者根据实际需求选择合适的部署方式。无论是开发调试、功能测试还是版本验证,Docker Compose都能提供便捷的解决方案。

记住,对于生产环境,应考虑更健壮的部署方案如Kubernetes。希望本指南能帮助您顺利开始Superset之旅!

【免费下载链接】superset 【免费下载链接】superset 项目地址: https://gitcode.com/gh_mirrors/su/superset

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值