使用 Docker Compose
由于 docker compose
主要设计用于在 单个主机 上运行一组容器,并且无法支持 高可用性 的要求,我们不支持也不推荐使用我们 的 docker compose
结构来支持生产类型的用例。对于单主机环境,我们建议使用 minikube 并结合我们的 在 Kubernetes 上安装 文档。
如我们在 快速入门指南 中提到的,在 Linux 或 Mac OSX 计算机上使用 Docker Compose 是尝试 Superset 本地的最快方式。Superset 不正式支持 Windows。这也是快速启动一个完全功能的 开发环境 的最简单方法。
请注意,我们有三种主要的支持方式来运行 docker compose
:
- docker-compose.yml: 用于交互式开发,我们在这里挂载了包含前端/后端文件的本地文件夹,您可以编辑这些文件并在应用程序中实时体验您所做的更改。
- docker-compose-non-dev.yml 我们在这里基于本地分支构建一个更不可变的镜像,并运行所有必需的镜像。在您启动时,本地分支的更改将会反映出来,但在
up
时对代码的更改不会反映在应用程序中。 - docker-compose-image-tag.yml 我们在这里从 docker-hub 获取一个镜像,例如
3.0.0
版本,并启动它以便您可以尝试。这里本地分支的内容对正在运行的内容没有影响,我们只是从 docker-hub 获取并运行预构建的镜像。为了使docker compose
与它启动的 Postgres 镜像一起工作,您需要指向一个带有-dev
后缀的 TAG,例如export TAG=4.0.0-dev
或export TAG=3.0.0-dev
,默认情况下是latest-dev
。这是因为dev
构建恰好打包了连接到作为docker compose
构建一部分启动的 Postgres 数据库所需的psycopg2-binary
。
在设置任一要求后,更多关于这两种方法的内容。
要求
请注意,本文档假设您已安装 Docker 和 git。另请注意,我们过去使用 docker-compose
,但该工具正在被弃用,因此我们现在使用 docker compose
。
1. 克隆 Superset 的 GitHub 仓库
在终端中使用以下命令 克隆 Superset 的仓库:
git clone --depth=1 https://github.com/apache/superset.git
一旦该命令成功完成,您应该会在当前目录中看到一个新的 superset
文件夹。
2. 通过 Docker Compose 启动 Superset
首先假设您熟悉 docker compose
的机制。这里我们通常会提到 docker compose up
,尽管在某些情况下您可能希望使用 docker compose pull
强制检查更新的远程镜像,使用 docker compose build
强制构建,或使用 docker compose build --pull
强制在最新的基础镜像上构建。但在大多数情况下,简单的 up
命令应该就足够了。有关更多信息,请参阅 docker compose 文档。
选项 #1 - 用于交互式开发环境
docker compose up
在开发模式下运行时,superset-node
容器需要完成资产构建,以便 UI 正确渲染。如果您只想尝试 Superset 而不进行任何代码更改,请按照下面文档中 production
或特定版本的步骤操作。
默认情况下,我们在这里挂载本地 superset-frontend 文件夹并运行 npm install
以及 npm run dev
,这会触发 webpack 编译/打包前端代码。根据您的本地设置,特别是如果您内存少于 16GB,这些操作可能会非常慢。在这种情况下,我们建议您将环境变量 BUILD_SUPERSET_FRONTEND_IN_DOCKER
设置为 false
,并在本地终端中运行这些操作。只需触发 npm i && npm run dev
,这应该会快得多。
选项 #2 - 从本地分支构建一组不可变镜像
docker compose -f docker-compose-non-dev.yml up
选项 #3 - 启动一个官方发布版本
export TAG=3.1.1
docker compose -f docker-compose-image-tag.yml up
这里可以使用各种发布标签、github SHA 和最新的 master
通过 TAG 环境变量引用。请参阅与 docker 相关的文档,了解更多您可以从 Docker Hub 指向的现有标签。