mirror of
https://github.com/apache/superset.git
synced 2026-04-07 10:31:50 +00:00
Docker support (#8725)
* Moving Docker stuff around * docker-compose working as expected * Updating README * Addressing comments * Utilizing requirements-extra
This commit is contained in:
committed by
Daniel Vaz Gaspar
parent
69dcaca324
commit
fce49680d7
87
docker/pythonpath_dev/superset_config.py
Normal file
87
docker/pythonpath_dev/superset_config.py
Normal file
@@ -0,0 +1,87 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
#
|
||||
# This file is included in the final Docker image and SHOULD be overridden when
|
||||
# deploying the image to prod. Settings configured here are intended for use in local
|
||||
# development environments. Also note that superset_config_docker.py is imported
|
||||
# as a final step as a means to override "defaults" configured here
|
||||
#
|
||||
|
||||
import logging
|
||||
import os
|
||||
|
||||
|
||||
logger = logging.getLogger()
|
||||
|
||||
|
||||
def get_env_variable(var_name, default=None):
|
||||
"""Get the environment variable or raise exception."""
|
||||
try:
|
||||
return os.environ[var_name]
|
||||
except KeyError:
|
||||
if default is not None:
|
||||
return default
|
||||
else:
|
||||
error_msg = "The environment variable {} was missing, abort...".format(
|
||||
var_name
|
||||
)
|
||||
raise EnvironmentError(error_msg)
|
||||
|
||||
|
||||
POSTGRES_USER = get_env_variable("POSTGRES_USER")
|
||||
POSTGRES_PASSWORD = get_env_variable("POSTGRES_PASSWORD")
|
||||
POSTGRES_HOST = get_env_variable("POSTGRES_HOST")
|
||||
POSTGRES_PORT = get_env_variable("POSTGRES_PORT")
|
||||
POSTGRES_DB = get_env_variable("POSTGRES_DB")
|
||||
|
||||
# The SQLAlchemy connection string.
|
||||
SQLALCHEMY_DATABASE_URI = "postgresql://%s:%s@%s:%s/%s" % (
|
||||
POSTGRES_USER,
|
||||
POSTGRES_PASSWORD,
|
||||
POSTGRES_HOST,
|
||||
POSTGRES_PORT,
|
||||
POSTGRES_DB,
|
||||
)
|
||||
|
||||
REDIS_HOST = get_env_variable("REDIS_HOST")
|
||||
REDIS_PORT = get_env_variable("REDIS_PORT")
|
||||
|
||||
|
||||
class CeleryConfig(object):
|
||||
BROKER_URL = "redis://%s:%s/0" % (REDIS_HOST, REDIS_PORT)
|
||||
CELERY_IMPORTS = ("superset.sql_lab",)
|
||||
CELERY_RESULT_BACKEND = "redis://%s:%s/1" % (REDIS_HOST, REDIS_PORT)
|
||||
CELERY_ANNOTATIONS = {"tasks.add": {"rate_limit": "10/s"}}
|
||||
CELERY_TASK_PROTOCOL = 1
|
||||
|
||||
|
||||
CELERY_CONFIG = CeleryConfig
|
||||
|
||||
#
|
||||
# Optionally import superset_config_docker.py (which will have been included on
|
||||
# the PYTHONPATH) in order to allow for local settings to be overridden
|
||||
#
|
||||
try:
|
||||
from superset_config_docker import * # noqa
|
||||
import superset_config_docker
|
||||
|
||||
logger.info(
|
||||
f"Loaded your Docker configuration at " f"[{superset_config_docker.__file__}]"
|
||||
)
|
||||
except ImportError:
|
||||
logger.info("Using default Docker config...")
|
||||
Reference in New Issue
Block a user