docker安装superset实践

233 阅读1分钟

 1、拉取docker镜像

docker pull apache/superset:latest

2、安装superset容器

mkdir /usr/local/develop/docker/superset/ -p
touch /usr/local/develop/docker/superset/superset_config.py

  superset_config.py配置文件如下:

SQLALCHEMY_DATABASE_URI = 'mysql://用户名:密码@mysql地址/数据库'

# 允许跨域
ENABLE_CORS = True
HTTP_HEADERS = {'X-Frame-Options': 'SAMEORIGIN'}
SUPERSET_WEBSERVER_DOMAINS = ['域名']

# Flask-WTF flag for CSRF
WTF_CSRF_ENABLED = True
# Add endpoints that need to be exempt from CSRF protection
WTF_CSRF_EXEMPT_LIST = []
# A CSRF token that expires in 1 year
WTF_CSRF_TIME_LIMIT = 60 * 60 * 24 * 365

# Set this API key to enable Mapbox visualizations
MAPBOX_API_KEY = ''
ENABLE_PROXY_FIX = True

# 确保所有元数据都使用 MySQL
DATA_CACHE_CONFIG = {
    'CACHE_TYPE': 'SupersetMetastoreCache',
    'CACHE_KEY_PREFIX': 'superset_results',
    'CACHE_DEFAULT_TIMEOUT': 86400,
    'METADATA_CACHE_CONFIG': {
        'CACHE_TYPE': 'RedisCache',  # 或者使用数据库缓存
        'CACHE_DEFAULT_TIMEOUT': 86400,
        'CACHE_KEY_PREFIX': '数据库名',
    }
}

# 禁用 SQLite 完全
PREVENT_UNSAFE_DB_CONNECTIONS = True

 4、启动docker

docker run --name superset -d -p 8080:8088 \

-e "SUPERSET_SECRET_KEY=***"

-v /usr/local/develop/docker/superset/superset_config.py:/etc/superset/superset_config.py \

-v /usr/local/develop/docker/superset/data:/var/lib/superset -e "FLASK_ENV=production" \  apache/superset:latest

5、容器初始化

docker exec -it superset superset fab create-admin 
--username 用户名
--firstname *** 
--lastname ***
--email ***
--password ***
docker exec -it superset superset init

默认使用的是sqllite数据库,切换mysql有问题,欢迎讨论!