在 Podman 上运行 Metabase

我们的 Metabase 官方 Docker 镜像兼容任何运行 Podman 的系统。

开源版快速入门

假设您已安装并运行 Podman,获取最新的容器镜像

podman pull docker.io/metabase/metabase:latest

然后启动 Metabase 容器

podman run -d -p 3000:3000 --name=metabase docker.io/metabase/metabase:latest

这将默认在 3000 端口启动 Metabase 服务器。

可选:要查看开源版 Metabase 初始化时的日志,请运行

podman logs -f metabase

启动完成后,您可以通过 https://:3000 访问您的开源版 Metabase。

要在不同端口(例如 12345 端口)运行您的开源版 Metabase

podman run -d -p 12345:3000 --name=metabase docker.io/metabase/metabase:latest

专业版或企业版快速入门

如果您拥有 专业版或企业版 Metabase 的许可令牌,并希望在本地运行 Metabase,请使用此快速入门指南。

假设您已安装并运行 Podman,获取最新的容器镜像

podman pull docker.io/metabase/metabase-enterprise:latest

然后启动 Metabase 容器

podman run -d -p 3000:3000 --name=metabase docker.io/metabase/metabase-enterprise:latest

这将默认在 3000 端口启动 Metabase 服务器。

可选:要查看 Metabase 初始化时的日志,请运行

podman logs -f metabase

启动完成后,您可以通过 https://:3000 访问您的专业版或企业版 Metabase。

要在不同端口(例如 12345 端口)运行您的专业版或企业版 Metabase

podman run -d -p 12345:3000 --name=metabase docker.io/metabase/metabase-enterprise:latest

生产环境安装

Metabase 附带一个嵌入式 H2 数据库,该数据库使用文件系统存储其应用程序数据。这意味着,如果您移除容器,您将丢失 Metabase 应用程序数据(您的提问、仪表盘、集合等)。

如果您想在生产环境中运行 Metabase,您需要将应用程序数据存储在生产级数据库中。

一旦您为 Metabase 预置了一个数据库(例如 Postgres)用于存储其应用程序数据,您只需向 Metabase 提供连接信息和凭据,Metabase 即可连接到该数据库。

在生产环境中运行 Podman

假设您通过运行以下命令设置了一个 Postgres 数据库

createdb metabaseappdb

无需添加任何表;Metabase 将在启动时创建它们。假设该数据库可以通过 my-database-host:5432 访问,用户名为 name,密码为 password

以下是告诉 Metabase 使用该数据库的 Podman 命令示例

podman run -d -p 3000:3000 \
  -e "MB_DB_TYPE=postgres" \
  -e "MB_DB_DBNAME=metabaseappdb" \
  -e "MB_DB_PORT=5432" \
  -e "MB_DB_USER=name" \
  -e "MB_DB_PASS=password" \
  -e "MB_DB_HOST=my-database-host" \
   --name metabase metabase/metabase

请记住,Metabase 将从您的 Podman 容器内部进行连接,因此请确保:a) 您使用的是完全限定域名,或者 b) 您已在容器的 /etc/hosts 文件中设置了正确的条目。

迁移到生产环境安装

如果您已经在使用默认应用程序数据库 (H2) 运行 Metabase,并且希望使用生产级应用程序数据库而不丢失您的应用数据(您的提问、仪表盘等),请参阅从 H2 迁移到生产数据库

其他 Podman 维护和配置

将 Metabase 作为服务运行

我们可以使用 systemd 初始化服务来注册一个可以自动启动和停止的 Metabase 服务。在执行此过程之前,请确保 Metabase 容器正在运行。然后,利用 Podman 的内置功能生成服务文件,如下所示

sudo podman generate systemd --new --name metabase > metabase.service

在执行服务之前,请检查 metabase.service 文件的内容,以验证所有准确的配置都已存在。确认后,通过运行以下命令将服务文件定位到相应位置

sudo mv metabase.service /etc/systemd/system

要在系统启动时启用 Metabase 服务的自动启动,请执行

sudo systemctl enable metabase

为了验证系统是否正常运行,请重新启动系统。系统初始化过程完成后,Metabase 容器应按预期运行。

自定义 Metabase Jetty 服务器

您可以通过在 Podman 运行命令中设置环境变量来使用自定义 Metabase Jetty Web 服务器中的任何自定义设置。

设置 Java 时区

最好将您的 Java 时区设置为与您希望所有报告显示的时区一致。您可以通过简单地指定 JAVA_TIMEZONE 环境变量来实现,该变量会被 Metabase 启动脚本获取。例如

podman run -d -p 3000:3000 \
  -e "JAVA_TIMEZONE=US/Pacific" \
  --name metabase metabase/metabase

故障排除

请参阅故障排除指南中的“运行 Metabase”。

继续设置

安装 Metabase 后,现在是时候设置它并连接到您的数据库了。

阅读其他 Metabase 版本的文档。

© . All rights reserved.