首页 > 其他分享 > docker 安装superset

docker 安装superset

时间:2023-09-26 13:57:36浏览次数:49  
标签:compose 数据库 Superset docker superset 安装 Docker

docker 安装superset

目录

1. 安装 docker和docker compose

2. 克隆 Superset 的 GitHub

git clone https://github.com/apache/superset.git

该命令成功完成后,您应该superset在当前目录中看到一个新文件夹。

3.通过 Docker Compose

导航到您在步骤 1 中创建的文件夹:

cd superset

在 master 分支上工作时,运行以下命令以运行development模式docker compose

docker compose up

在 master 分支上工作时,运行以下命令以运行production模式docker compose

docker-compose -f docker-compose-non-dev.yml pull
docker-compose -f docker-compose-non-dev.yml up

docker-compose或者,您也可以通过首先检查分支/标签,然后从变量开始来运行 Superset 的特定版本TAG。例如,要运行2.1.0版本,请运行以下命令:

git checkout 3.0.0
TAG=3.0.0 docker-compose -f docker-compose-non-dev.yml pull
TAG=3.0.0 docker-compose -f docker-compose-non-dev.yml up

提示

请注意,某些配置对于 Superset 的生产实例是强制性的。特别是,如果没有用户指定的值,Superset 将不会启动SECRET_KEY。请参阅配置超级集

警告

属于 Superset 实例的所有内容(图表、仪表板、用户等)都存储在其元数据数据库中。在生产中,应该备份该数据库。docker-compose 的默认安装将将该数据存储在 Docker卷中包含的 PostgreSQL 数据库中,该数据库未备份。为了避免数据丢失的风险,请使用托管数据库来存储元数据(推荐),或者通过从卷中提取和存储默认 PostgreSQL 数据库的内容来执行您自己的定期备份(以下是如何转储和恢复的示例

您应该会看到计算机上启动的容器的日志输出墙。一旦此输出变慢,您的本地计算机上应该有一个正在运行的 Superset 实例!为了避免将来运行时出现文本墙,请将该-d选项添加到命令末尾docker-compose up

注意:这将在非开发模式下启动超集,对代码库的更改将不会反映出来。如果您想在开发模式下运行 superset 来测试本地更改,只需将之前的命令替换为:docker-compose up,然后等待superset_node容器完成资产构建。

4.配置 Docker Compose

以下内容适用于想要配置 Superset 如何在 Docker Compose 中运行的用户;否则,您可以跳到下一部分。

您可以按照docker/README.md中提到的步骤安装其他 python 包并应用配置覆盖

docker/.env您可以分别使用和为开发模式和非开发模式配置 Docker Compose 环境变量docker/.env-non-dev。这些环境文件为 Docker Compose 设置中的大多数容器设置环境,某些变量影响多个容器,而其他变量仅影响单个容器。

一个重要的变量SUPERSET_LOAD_EXAMPLES决定superset_init容器是否将示例数据和可视化填充到元数据数据库中。这些示例有助于学习和测试 Superset,但对于有经验的用户和生产部署来说则不必要。加载过程有时可能需要几分钟时间并占用大量 CPU,因此您可能需要在资源受限的设备上禁用它。

笔记

用户经常希望从 Superset 连接到其他数据库。目前,最简单的方法是修改该docker-compose-non-dev.yml文件并将数据库添加为其他服务所依赖的服务(通过x-superset-depends-on)。其他人尝试设置network_mode: hostSuperset 服务,但这些通常会破坏安装,因为配置需要使用 Docker Compose DNS 解析器来解析服务名称。如果您对此有好的解决方案,请告诉我们!

笔记

Superset 使用Scarf Gateway收集遥测数据。了解不同 Superset 版本的安装数量可以帮助项目做出有关修补和长期支持的决策。Scarf 会清除个人身份信息 (PII),并仅提供汇总统计数据。

要在基于 docker-compose 的安装中选择退出此数据收集,请编辑和文件x-superset-image:中的行,替换为直接从 Docker Hub 提取映像。docker-compose.yml``docker-compose-non-dev.yml``apachesuperset.docker.scarf.sh/apache/superset``apache/superset

5.登录Superset

您的本地 Superset 实例还包括一个用于存储数据的 Postgres 服务器,并且已经预加载了 Superset 附带的一些示例数据集。您现在可以通过网络浏览器访问 Superset http://localhost:8088。请注意,许多浏览器现在默认为https- 如果您的浏览器是其中之一,请确保它使用http.

使用默认用户名和密码登录:

username: admin
password: admin

6. 将 Superset 连接到本地数据库实例

当使用 Superset 运行时,docker或者docker-compose它在自己的 docker 容器中运行,就好像 Superset 完全在单独的机器中运行一样。因此,尝试使用主机名连接到本地数据库localhost将不起作用,因为localhost它指的是运行 Superset 的 docker 容器,而不是您的实际主机。幸运的是,docker 提供了一种从容器内部访问主机中网络资源的简单方法,我们将利用此功能连接到本地数据库实例。

这里的说明是从 Superset(在其 docker 容器中运行)连接到 postgresql(在您的主机上运行)。其他数据库的配置可能略有不同,但要点是相同的,可归结为 2 个步骤 -

  1. (Mac 用户可以跳过此步骤)配置本地 postgresql/数据库实例以接受公共传入连接。默认情况下,postgresql 只允许来自 Docker 和 Docker 下的传入连接localhost,除非您使用--network=host,localhost将分别引用主机上和 Docker 容器中的不同端点。允许 postgresql 接受来自 Docker的连接需要对文件进行一行更改postgresql.confpg_hba.conf您可以在网络上轻松找到适合您的操作系统/PG 版本的有用链接来完成此任务。对于 Docker,只需将 IP 列入白名单172.0.0.0/8即可*,但无论如何,您都会被警告,在生产数据库中执行此操作可能会当您向公共互联网开放数据库时,会产生灾难性的后果。
  2. 尝试连接到数据库时,localhost尝试使用host.docker.internal(Mac 用户、Ubuntu)或(Linux 用户)作为主机名,而不是。172.18.0.1这是 Docker 的内部细节——发生的情况是,在 Mac 系统中,Docker Desktop 为主机名创建一个 dns 条目,host.docker.internal该条目解析为主机的正确地址,而在 Linux 中情况并非如此(至少通过默认)。如果这两个主机名都不起作用,那么您可能需要找到您想要使用的确切主机名,为此您可以执行ifconfigip addr show并查看docker0Docker 必须为您创建的接口的 IP 地址。或者,如果您甚至没有看到docker0界面,请尝试(如果需要使用 sudo)docker network inspect bridge并查看是否有一个条目"Gateway"并记下 IP 地址。

7.解决无法登录一直还在登录界面问题

内容安全策略 (CSP )

Superset 使用Talisman扩展来实现 内容安全策略 (CSP),这是一个附加的安全层,有助于检测和缓解某些类型的攻击,包括跨站点脚本 (XSS) 和数据注入攻击。

CSP 使服务器管理员可以通过指定浏览器应视为有效可执行脚本源的域来减少或消除可能发生 XSS 的向量。然后,兼容 CSP 的浏览器将仅执行从这些允许的域接收的源文件中加载的脚本,而忽略所有其他脚本(包括内联脚本和事件处理 HTML 属性)。

策略是使用一系列策略指令来描述的,每个策略指令都描述特定资源类型或策略领域的策略。您可以 在此处检查可能的指令。

在部署 Superset 时,正确配置内容安全策略对于防止多种类型的攻击非常重要。Superset 提供了两个config.py用于部署 CSP 的变量:

  • TALISMAN_ENABLED默认为True;设置此项False以禁用 CSP
  • TALISMAN_CONFIG保存实际的策略定义(参见下面的示例)以及要传递给 Talisman 的任何其他参数。

在生产模式下运行时,Superset 将在启动时检查 CSP 是否存在。如果没有找到,就会发出安全风险警告。对于使用其他软件在 Superset 外部定义 CSP 策略的环境,管理员可以使用CONTENT_SECURITY_POLICY_WARNING中的键禁用此警告config.py

8.此处为修改的文件内容

[root@localhost superset-latest]# pwd
/opt/superset-latest
[root@localhost superset-latest]# vim docker/.env-non-dev 

DATABASE_HOST=db
DATABASE_PASSWORD=superset
DATABASE_USER=superset

# database engine specific environment variables
# change the below if you prefer another database engine
DATABASE_PORT=5432
DATABASE_DIALECT=postgresql
POSTGRES_DB=superset
POSTGRES_USER=superset
POSTGRES_PASSWORD=superset
#MYSQL_DATABASE=superset
#MYSQL_USER=superset
#MYSQL_PASSWORD=superset
#MYSQL_RANDOM_ROOT_PASSWORD=yes

# Add the mapped in /app/pythonpath_docker which allows devs to override stuff
PYTHONPATH=/app/pythonpath:/app/docker/pythonpath_dev
REDIS_HOST=redis
REDIS_PORT=6379

FLASK_ENV=production
SUPERSET_ENV=production
SUPERSET_LOAD_EXAMPLES=yes
#此处为修改内容
SUPERSET_SECRET_KEY=nmR02PK1iF9NaC3WCgEcizct9FyPLpGTHzCRdwINrswQmlKm/YCY/xd3
CYPRESS_CONFIG=false
SUPERSET_PORT=8088
MAPBOX_API_KEY=''
#此处为添加内容 禁用安全策略
TALISMAN_ENABLED=False

标签:compose,数据库,Superset,docker,superset,安装,Docker
From: https://www.cnblogs.com/zttong/p/17729914.html

相关文章

  • Service mesh 学习03 Istio安装
    一、Kubernetes环境......
  • Docker 学习笔记(一)
    一、Docker和虚拟机有什么区别初次看到Docker的功能,直觉就是:这是简化版的虚拟机!但它和虚拟机是有本质区别的,最根本的区别在于:虚拟机真的是完全虚拟出一台电脑,普通PC机有啥,它就给你虚拟出啥来,我们几乎可以在上面安装普通PC上的任何操作系统和软件;而Docker只是做出一个进程之间......
  • Ubuntu 22.04上安装docker方法及oracle 11g方法
    1.切换到管理员登录ubt2204@ubt2204-Virtual-Machine:~/database$suPassword:2.执行安装docker命令root@ubt2204-Virtual-Machine:/home/ubt2204/database#sudoaptinstalldocker.io3.启动docker服务systemctlstartdocker#或者sudoservicedockerstart4.......
  • 联想T30瘦客户机安装DoraOS体验
    硬件配置:J4125、8GRAM、128GROM联想T30台式电脑,它是一台迷你计算机,尺寸小巧玲珑,重量适中,方便携带。它的性能十分强大,能够运行各种应用程序,包括网页浏览器、视频播放器等。它还支持多种操作系统,如Windows系统和Linux系统,用户可以根据自己的需求选择不同的操作系统。此外,这台计......
  • Linux CentOS 7.x离线安装PostgreSQL操作手册
    一、准备环节rpm-qa|greppostgres检查PostgreSQL是否已经安装rpm-qal|greppostgres检查PostgreSQL安装位置postgresql-12.2.tar.gz二、Pgsql数据库安装下载下载地址:http://www.postgresql.org/ftp/source/选择你你需要的版本,本次安装12.2的版......
  • nginx-clojure nginx 1.25.2 版本docker 镜像
    主要是测试下nginx-clojure有nginx1.25.2的兼容性,顺便基于原有的构建弄一个方便测试的debug版本的镜像构建构建命令实际结合业务修改下./configure--prefix=--sbin-path=nginx--conf-path=conf/nginx.conf--error-log-path=logs/error.log--http-log-path......
  • 乌班图18.04安装.net 6.0
    乌班图18.04安装.net6.0wgethttps://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb-Opackages-microsoft-prod.debsudodpkg-ipackages-microsoft-prod.debsudoapt-getinstallapt-transport-httpssudoapt-getupdatesudoapt-getin......
  • centos安装rabbitmq消息队列
    开源的消息队列系统很多如erlang开发的rabbitmq,java开发的activemq,redis的list也可以实现,workerman也有消息队列我们项目用的是rabbitmq,它的优点1、基于erlang语言开发具有高可用高并发的优点,适合集群服务器2、健壮、稳定、易用、跨平台、支持多种语言、文档齐全3、有消息确认机......
  • centos安装memached及php memached扩展
    php有两个memcache客户端:phpmemcache和phpmemcached。phpmemcache独立用php实现,是老客户端,功能少,属性也可设置的少;http://pecl.php.net/package/memcachephpmemcached是基于原生的c的libmemcached的扩展,更加完善,建议替换为phpmemcached。htt......
  • centos安装php扩展mssql
    注意:1、server-dsn是数据源,事先在freetds.conf配置好的[server-dsn]    host=192.168.10.125    port=1433    tdsversion=8.0clientcharset=UTF-8开始安装1、输入安装命令 自动先安装freetds安装包sudo yum install php-mssql -ysudo ......