You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Superset非开发Docker环境添加依赖包报错问题求助

解决Superset非开发环境找不到hvac模块的问题

核心原因

开发版docker-compose是把本地代码直接挂载到容器里,你本地安装的依赖、新增的文件会直接被容器复用;但非开发版是基于镜像运行,镜像里默认没有你的自定义依赖和文件,必须通过自定义构建镜像把这些内容打包进去才能生效。

具体操作步骤

1. 配置自定义依赖与文件

  • 在项目根目录创建requirements-local.txt,写入需要的依赖:
    hvac
    # 其他你用到的自定义依赖也可以加在这里
    
  • 编写自定义Dockerfile(放在项目根目录):
    # 替换成你使用的Superset非开发镜像版本,比如2.1.0
    FROM apache/superset:2.1.0
    
    USER root
    # 复制自定义依赖文件并安装
    COPY requirements-local.txt /app/requirements-local.txt
    RUN pip install --no-cache-dir -r /app/requirements-local.txt
    
    # 把你新增的db_access.py复制到容器对应目录
    COPY superset/superset/db_access.py /app/superset/superset/db_access.py
    
    USER superset
    

2. 修改非开发版docker-compose配置

打开docker-compose-non-dev.yml,找到superset服务的配置,把原来的image替换成build指令,让它使用你写的Dockerfile构建镜像:

services:
  superset:
    # 注释掉原有的image行,替换成以下内容
    # image: apache/superset:2.1.0
    build: .
    # 其余原有配置(ports、environment等)保持不变

3. 重新构建并启动服务

执行以下命令更新镜像并启动:

# 构建自定义镜像
docker-compose -f docker-compose-non-dev.yml build superset
# 启动非开发环境服务
docker-compose -f docker-compose-non-dev.yml up -d

额外注意事项

  • 后续如果修改了db_access.py或新增了依赖,需要重新执行build命令更新镜像,否则容器内还是旧内容。
  • 确保Dockerfile里的Superset版本和你原本使用的非开发镜像版本一致,避免兼容性问题。

内容的提问来源于stack exchange,提问作者Ananthan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 05:15:37