Apache Superset发送邮件时无法截取图表截图问题求助
CSV能正常发送说明邮件基础配置没问题,这个报错核心是无头浏览器截图依赖缺失或版本不兼容,针对docker compose部署的场景,按以下步骤排查:
检查geckodriver与Firefox版本兼容性
0.29版本的geckodriver仅适配Firefox 75-77版本,先进入Superset容器确认Firefox版本:docker exec -it <你的superset容器名称> /bin/bash firefox --version如果版本不匹配,要么升级geckodriver到对应Firefox版本的兼容版,要么降级Firefox到75-77区间。替换geckodriver时,直接在容器内下载对应版本的二进制文件,替换
/usr/local/bin/geckodriver并赋予执行权限:chmod +x /usr/local/bin/geckodriver补充无头截图的系统依赖
Docker容器默认缺少xvfb和必要的GUI库,导致Firefox无头模式无法运行,进入容器执行以下命令安装:apt-get update && apt-get install -y xvfb libgtk-3-0 libdbus-glib-1-2 libx11-xcb1同时在Superset配置文件
superset_config.py中开启xvfb支持:WEBDRIVER_TYPE = "firefox" WEBDRIVER_OPTION_ARGS = [ "--headless", "--no-sandbox", "--disable-gpu", "--disable-dev-shm-usage", ] WEBDRIVER_BASEURL = "http://localhost:8088/" WEBDRIVER_USE_XVFB = True SCREENSHOT_LOCATE_WAIT = 10 SCREENSHOT_LOAD_WAIT = 30固化依赖到docker-compose配置(避免容器重启后丢失)
直接修改docker-compose.yml,在superset-worker服务中添加依赖安装命令,确保每次启动容器自动配置:services: superset-worker: command: > sh -c "apt-get update && apt-get install -y xvfb libgtk-3-0 libdbus-glib-1-2 libx11-xcb1 && /usr/bin/python3 /usr/local/bin/supervisord -c /etc/supervisor/supervisord.conf"修改后重启容器:
docker-compose up -d --force-recreate superset-worker验证geckodriver权限与路径
确认geckodriver可执行且路径正确:which geckodriver ls -l /usr/local/bin/geckodriver如果权限不足,执行
chmod +x /usr/local/bin/geckodriver修复。
内容的提问来源于stack exchange,提问作者Anandu Balan

