refactor(service): improve superset
- fix DB URLs - rename file - use alpine DB versions - make sure the DBs are healty - format and rename some stuff
This commit is contained in:
@@ -1,24 +1,21 @@
|
|||||||
# documentation: https://github.com/amancevice/docker-superset
|
# documentation: https://github.com/amancevice/docker-superset
|
||||||
# slogan: Modern data exploration and visualization platform (unofficial docker image)
|
# slogan: Modern data exploration and visualization platform (unofficial community docker image)
|
||||||
# tags: analytics,bi,dashboard,database,sql,unofficial
|
# tags: analytics,bi,dashboard,database,sql,unofficial
|
||||||
# logo: svgs/superset.svg
|
# logo: svgs/superset.svg
|
||||||
# port: 8088
|
# port: 8088
|
||||||
|
|
||||||
services:
|
services:
|
||||||
superset:
|
superset:
|
||||||
image: amancevice/superset
|
image: amancevice/superset:latest
|
||||||
restart: always
|
|
||||||
depends_on:
|
|
||||||
- superset_postgres
|
|
||||||
- superset_redis
|
|
||||||
environment:
|
environment:
|
||||||
- SERVICE_FQDN_SUPERSET_8088
|
- SERVICE_FQDN_SUPERSET_8088
|
||||||
- SECRET_KEY=${SERVICE_BASE64_64_SUPERSETSECRETKEY}
|
- SECRET_KEY=${SERVICE_BASE64_64_SUPERSETSECRETKEY}
|
||||||
- MAPBOX_API_KEY=${MAPBOX_API_KEY}
|
- MAPBOX_API_KEY=${MAPBOX_API_KEY}
|
||||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||||
- POSTGRES_DB=superset
|
- POSTGRES_DB=${POSTGRES_DB:-superset-db}
|
||||||
- REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}
|
- REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}
|
||||||
|
- PYTHONPATH=/etc/superset
|
||||||
volumes:
|
volumes:
|
||||||
- type: bind
|
- type: bind
|
||||||
source: ./superset/superset_config.py
|
source: ./superset/superset_config.py
|
||||||
@@ -33,41 +30,44 @@ services:
|
|||||||
|
|
||||||
SECRET_KEY = os.getenv("SECRET_KEY")
|
SECRET_KEY = os.getenv("SECRET_KEY")
|
||||||
MAPBOX_API_KEY = os.getenv("MAPBOX_API_KEY", "")
|
MAPBOX_API_KEY = os.getenv("MAPBOX_API_KEY", "")
|
||||||
COOLIFY_RESOURCE_UUID = os.getenv('COOLIFY_RESOURCE_UUID')
|
|
||||||
|
|
||||||
CACHE_CONFIG = {
|
CACHE_CONFIG = {
|
||||||
"CACHE_TYPE": "RedisCache",
|
"CACHE_TYPE": "RedisCache",
|
||||||
"CACHE_DEFAULT_TIMEOUT": 300,
|
"CACHE_DEFAULT_TIMEOUT": 300,
|
||||||
"CACHE_KEY_PREFIX": "superset_",
|
"CACHE_KEY_PREFIX": "superset_",
|
||||||
"CACHE_REDIS_HOST": "superset_redis",
|
"CACHE_REDIS_HOST": "redis",
|
||||||
"CACHE_REDIS_PORT": 6379,
|
"CACHE_REDIS_PORT": 6379,
|
||||||
"CACHE_REDIS_DB": 1,
|
"CACHE_REDIS_DB": 1,
|
||||||
"CACHE_REDIS_URL": f"redis://:{os.getenv('REDIS_PASSWORD')}@superset_redis-{COOLIFY_RESOURCE_UUID}:6379/1",
|
"CACHE_REDIS_URL": f"redis://:{os.getenv('REDIS_PASSWORD')}@redis:6379/1",
|
||||||
}
|
}
|
||||||
|
|
||||||
FILTER_STATE_CACHE_CONFIG = {**CACHE_CONFIG, "CACHE_KEY_PREFIX": "superset_filter_"}
|
FILTER_STATE_CACHE_CONFIG = {**CACHE_CONFIG, "CACHE_KEY_PREFIX": "superset_filter_"}
|
||||||
EXPLORE_FORM_DATA_CACHE_CONFIG = {**CACHE_CONFIG, "CACHE_KEY_PREFIX": "superset_explore_form_"}
|
EXPLORE_FORM_DATA_CACHE_CONFIG = {**CACHE_CONFIG, "CACHE_KEY_PREFIX": "superset_explore_form_"}
|
||||||
|
|
||||||
SQLALCHEMY_TRACK_MODIFICATIONS = True
|
SQLALCHEMY_TRACK_MODIFICATIONS = True
|
||||||
SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{os.getenv('POSTGRES_USER')}:{os.getenv('POSTGRES_PASSWORD')}@superset_postgres-{COOLIFY_RESOURCE_UUID}:5432/{os.getenv('POSTGRES_DB')}"
|
SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{os.getenv('POSTGRES_USER')}:{os.getenv('POSTGRES_PASSWORD')}@postgres:5432/{os.getenv('POSTGRES_DB')}"
|
||||||
|
|
||||||
# Uncomment if you want to load example data (using "superset load_examples") at the
|
# Uncomment if you want to load example data (using "superset load_examples") at the
|
||||||
# same location as your metadata postgresql instance. Otherwise, the default sqlite
|
# same location as your metadata postgresql instance. Otherwise, the default sqlite
|
||||||
# will be used, which will not persist in volume when restarting superset by default.
|
# will be used, which will not persist in volume when restarting superset by default.
|
||||||
#SQLALCHEMY_EXAMPLES_URI = SQLALCHEMY_DATABASE_URI
|
#SQLALCHEMY_EXAMPLES_URI = SQLALCHEMY_DATABASE_URI
|
||||||
|
depends_on:
|
||||||
|
postgres:
|
||||||
|
condition: service_healthy
|
||||||
|
redis:
|
||||||
|
condition: service_healthy
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:8088/health"]
|
test: ["CMD", "curl", "-f", "http://127.0.0.1:8088/health"]
|
||||||
interval: 5s
|
interval: 5s
|
||||||
timeout: 20s
|
timeout: 20s
|
||||||
retries: 10
|
retries: 10
|
||||||
|
|
||||||
superset_postgres:
|
postgres:
|
||||||
image: postgres
|
image: postgres:17-alpine
|
||||||
restart: always
|
|
||||||
environment:
|
environment:
|
||||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||||
- POSTGRES_DB=superset
|
- POSTGRES_DB=${POSTGRES_DB:-superset-db}
|
||||||
volumes:
|
volumes:
|
||||||
- superset_postgres_data:/var/lib/postgresql/data
|
- superset_postgres_data:/var/lib/postgresql/data
|
||||||
healthcheck:
|
healthcheck:
|
||||||
@@ -76,9 +76,8 @@ services:
|
|||||||
timeout: 20s
|
timeout: 20s
|
||||||
retries: 10
|
retries: 10
|
||||||
|
|
||||||
superset_redis:
|
redis:
|
||||||
image: redis
|
image: redis:8-alpine
|
||||||
restart: always
|
|
||||||
volumes:
|
volumes:
|
||||||
- superset_redis_data:/data
|
- superset_redis_data:/data
|
||||||
command: redis-server --requirepass ${SERVICE_PASSWORD_REDIS}
|
command: redis-server --requirepass ${SERVICE_PASSWORD_REDIS}
|
||||||
@@ -87,7 +86,3 @@ services:
|
|||||||
interval: 5s
|
interval: 5s
|
||||||
timeout: 20s
|
timeout: 20s
|
||||||
retries: 10
|
retries: 10
|
||||||
|
|
||||||
volumes:
|
|
||||||
superset_postgres_data:
|
|
||||||
superset_redis_data:
|
|
Reference in New Issue
Block a user