Superset–基础–2.2–部署–docker


1、介绍

我们使用docker-compose 进行快速生产部署Superset

1.1、环境

软件 版本 备注
Superset 4.0.1
docker 20.10.12
docker-compose 1.29.2
git 1.8.3.1 下载源码使用

2、安装

2.1、下载资源

# 下载源码
git clone https://github.com/apache/superset.git
# 进入目录
cd superset

# 切换到指定的稳定版本(请替换为最新的稳定版标签)
# 假设最新稳定版是 4.0.1
git checkout 4.0.1
# 定义环境变量
export TAG=4.0.1

2.2、配置环境变量

  • Superset 的docker-compose 配置通过 .env 文件加载环境变量。
# c创建环境变量,从非开发模式模板复制
cp -f docker/.env-non-dev docker/.env

# 生成一个强密钥
secret_key=`openssl rand -base64 42`

# ----------修改docker/.env的环境变量----------

# 更新密钥:SUPERSET_SECRET_KEY
sed -i "s|SUPERSET_SECRET_KEY=TEST_NON_DEV_SECRET|SUPERSET_SECRET_KEY=$secret_key|g" docker/.env

# 确保在生产环境中关闭示例数据加载
sed -i "s|SUPERSET_LOAD_EXAMPLES=yes|SUPERSET_LOAD_EXAMPLES=false|g" docker/.env

2.3、配置 docker-compose-non-dev.yml (可选,但推荐)

默认的 docker-compose-non-dev.yml 包含了 Superset Web 服务器、Celery Worker、Celery Beat、Redis 缓存和 PostgreSQL 元数据数据库。
对于生产环境,需要注意下面2点

  • 数据持久化:确保 PostgreSQL 和 Redis 的数据卷被映射到宿主机的持久化存储路径,以便在容器重启后数据不丢失。默认配置已经包含了数据卷,请确保其路径安全可靠。
  • 添加健康检查:为关键服务(如 superset、postgres)添加 healthcheck 指令,以便 Docker 可以监控其健康状态。

2.3.1、docker-compose-non-dev.yml 中添加健康检查

 
# 备份
cp docker-compose-non-dev.yml docker-compose-non-dev.yml.back
# 添加健康检查
vim docker-compose-non-dev.yml 

添加健康检查

# 配置
services:
  superset:
    # ... 其他配置 ...
    # 这里新增以下配置
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8088/health"]
      interval: 30s
      timeout: 10s
      retries: 3

在这里插入图片描述

2.4、初始化与启动

# -------------初始化与启动-------------
# 拉取镜像
docker-compose -f docker-compose-non-dev.yml pull
# 启动服务 (后台运行):
docker-compose -f docker-compose-non-dev.yml up -d


# 初始化数据库和管理员账户,服务启动后,我们需要在superset容器内执行初始化命令。

# 初始化数据库(创建表结构)
docker-compose -f docker-compose-non-dev.yml exec superset superset db upgrade

# 创建管理员用户(根据提示输入用户名、邮箱和密码).如果不创建的化,有个默认的账号密码admin/admin
docker-compose -f docker-compose-non-dev.yml exec superset superset fab create-admin

# 初始化默认角色和权限
docker-compose -f docker-compose-non-dev.yml exec superset superset init


2.4、访问与验证

http://localhost:8088

在这里插入图片描述

3、常用命令

# 停止服务
docker-compose -f docker-compose-non-dev.yml down


# 拉取镜像
docker-compose -f docker-compose-non-dev.yml pull
# 启动服务 (后台运行):
docker-compose -f docker-compose-non-dev.yml up -d

# 查看服务日志
docker logs superset_app
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐