Metabaseをコンテナで立ち上げてみた

こんにちは。 エキサイト株式会社の三浦です。

今回は、Metabaseをコンテナで立ち上げてみた話をしていきます。

Metabaseとは

MetabaseはBIツールの一つで、社内のデータを可視化するのに役立ちます。

www.metabase.com

  • Dockerを使って簡単に起動できる
  • 様々なデータソースと接続できる

など、使いやすいツールです。

今回はこのMetabaseを、実際にコンテナで立ち上げてみます。

コンテナで立ち上げる

それでは、実際に立ち上げてみます。

とは言っても、 docker compose を使えば以下の設定だけで完了です。

version: '3.8'

services:
  metabase:
    image: metabase/metabase:v0.49.0
    environment:
      MB_DB_TYPE: postgres
      MB_DB_HOST: postgres
      MB_DB_DBNAME: bi_tool
      MB_DB_PORT: 5432
      MB_DB_USER: bi_tool
      MB_DB_PASS: bi_tool_pw
    ports:
      - "3000:3000"

  postgres:
    image: postgres:16
    environment:
      POSTGRES_DB: bi_tool
      POSTGRES_USER: bi_tool
      POSTGRES_PASSWORD: bi_tool_pw
    ports:
      - "5432:5432"

細かく見ていきます。

本質的には、Metabaseの設定は以下だけです。

version: '3.8'

services:
  metabase:
    image: metabase/metabase:v0.49.0
    ports:
      - "3000:3000"

実はこれだけで、Metabaseを立ち上げることが出来ます。

ただしこの場合、Metabaseの設定はローカルに保存されることとなります。 コンテナとして立ち上げる場合、コンテナを立ち上げ直すたびに設定が消えてしまうのは使い勝手が悪いので、設定をローカル以外の場所に保存する必要があります。

今回はPostgreSQLに保存するようにしており、そのために残りの設定をしています。

version: '3.8'

services:
  metabase:
    image: metabase/metabase:v0.49.0
    environment:
      MB_DB_TYPE: postgres
      MB_DB_HOST: postgres
      MB_DB_DBNAME: bi_tool
      MB_DB_PORT: 5432
      MB_DB_USER: bi_tool
      MB_DB_PASS: bi_tool_pw
    ports:
      - "3000:3000"

  postgres:
    image: postgres:16
    environment:
      POSTGRES_DB: bi_tool
      POSTGRES_USER: bi_tool
      POSTGRES_PASSWORD: bi_tool_pw
    ports:
      - "5432:5432"

postgres サービスにて、PostgreSQLのコンテナを立ち上げています。 DB名やユーザ名・パスワードは任意のもので構いません。

そして、 metabase サービスの environment にて、立ち上げたPostgreSQLに設定を保存するようにしています。

各種データは、先に立ち上げたPostgreSQLの設定に合わせるようにしましょう。

これで設定は完了です! 実際に立ち上げてみます。

http://localhost:3000/

無事、立ち上げることができました!

もちろん、Metabaseのコンテナのみ削除・再立ち上げしても、設定は失われません。

最後に

BIツールによるデータ可視化は、サービスを運営していく上で非常に有用です。

Metabaseは上記のように非常に簡単に立ち上げることができるので、ぜひ使ってみると良いのではないでしょうか。

参考

[ データ可視化ツール]MetabaseをDocker上で構築してRedshiftへ接続する | DevelopersIO

docker composeでmetabaseを構築する | mebee

Metabaseの設定情報をPostgreSQLに保存 - suzuki-navi’s blog