Docker部署 superset 及汉化

By | 2021-01-24

Docker部署 superset

docker run -d -p 8088:8088 -v /opt/docker/superset:/home/superset  --name superset amancevice/superset

superset初始化

docker exec -it 容器ID superset init

初始化数据库

docker exec -it 容器ID superset db upgrade

设置用户名和密码

在容器内执行

export FLASK_APP=superset
flask fab create-admin
///docker exec -it 容器ID fabmanager create-admin –app superset

开启superset服务

docker exec -it 容器ID superset runserver

持久化mysql部署

SQLALCHEMY_DATABASE_URI ="mysql://root:密码@xx.xx.xx.xx:3306/数据库名称?charset=utf8"

重启服务

docker stop superset
docker start superset

上传csv的时候会出现permission error,解决方法,变更superset文件的权限。
1.进入容器

chmod 777 /usr/local/lib/python3.8/site-packages/superset

superset导出csv中文乱码问题

docker exec --user root -it superset /bin/bash

进入容器,然后”apt-get install vim”安装vim:

1.修改 /usr/local/lib/python3.8/site-packages/superset/config.py

CSV_EXPORT = {'encoding': 'gbk',}


ps:实际使用中验证如果改成’gbk’虽然win10用excel打开csv不会再有乱码,但是会有些厂家中因为编码问题导致不能正常导出。

其实真正乱码的原因是win10中的excel无法正常识别utf-8编码格式,正确的做法应该改成“utf-8-sig”

2.修改/usr/local/lib/python3.8/site-packages/superset/views/core.py

csv = df.to_csv(index=False, **config.get('CSV_EXPORT'))
response = CsvResponse(csv, mimetype='text/csv')

用CsvResponse 而不是Response

汉化

以root身份进入容器,安装vim

docker exec -it -u root id bash
apt-get update && apt-get install vim
vi /usr/local/lib/python3.8/site-packages/superset/config.py

1.修改 /usr/local/lib/python3.8/site-packages/superset/config.py

BABEL_DEFAULT_LOCALE=zh

重新编译设计到国际化的文件

pybabel compile -d /usr/local/lib/python3.8/site-packages/superset/translations