😃

Redash環境をDocker Composeで構築

2023/09/28に公開

環境

クローン、ビルド

まずは公式レポジトリをクローン。

% git clone https://github.com/getredash/redash.git

環境変数を設定するため .env ファイルを作成します。

以下の値だけは必須らしく、未設定だとコンテナのビルド・立ち上げが失敗してしまいます。

% REDASH_COOKIE_SECRET='my_redash_dashboard' # change for production

イメージをビルドしてコンテナを立ち上げます。

% docker-compose up -d

Nodeパッケージのインストール

% yarn --frozen-lockfile

ここで以下のエラーが発生。

error redash-client@23.9.0-dev: The engine "node" is incompatible with this module. Expected version ">14.16.0 <17.0.0". Got "17.3.0"
error Found incompatible module.

Node.jsのバージョンが一致していないので、適当なバージョンをインストールしてやる。ver.17未満の最新版当たりが良さそうです。

$ nodenv install --list | grep 16. | tail16.7.0
16.8.0
16.9.0
16.9.1
16.10.0
16.11.0
16.11.1
16.12.0
16.13.0
16.13.1

$ nodenv install 16.13.1

インストールできたら、確認とバージョンの切り替えを行います。

monokaai@MacBook-Air redash % nodenv versions
  system
  16.13.1
* 17.3.0 (set by /Users/monokaai/.anyenv/envs/nodenv/version)
monokaai@MacBook-Air redash % nodenv local 16.13.1
monokaai@MacBook-Air redash % nodenv versions     
  system
* 16.13.1 (set by /Users/monokaai/work/redash/.node-version)
  17.3.0

node -vしても16.13.1になっていなかったので、軽くハマりました。これは~/.zshrcにnodenvの初期化処理を書いていないためでした。

以下の処理を追加して source ~/.zshrcで再起動すればOKでした。

# nodenvの初期化
eval "$(nodenv init -)"

パッケージのインストール(再トライ)

yarnインストール&パッケージインストールをリトライ。

% npm install -g yarn
% yarn -- frozen -lockfile

Apple Silicon Mac向け対応

順調に見えたのですが、Puppeteerインストールの際にARM64向けのChromium-binaryが提供されていないとのこと。

error /Users/monokaai/work/redash/node_modules/puppeteer: Command failed.
Exit code: 1
Command: node install.js
Arguments: 
Directory: /Users/monokaai/work/redash/node_modules/puppeteer
Output:
The chromium binary is not available for arm64: 
If you are on Ubuntu, you can install with: 

 apt-get install chromium-browser

brewでインストールして、

brew install chromium
↓
monokaai@MacBook-Air redash % which chromium
/opt/homebrew/bin/chromium

.envファイルに環境変数を追記して source .envで読込みますが、これだけは動きませんでした。

PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium

結局こちらの対応で解決しました。

$ export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
$ yarn --frozen-lockfile

データベース作成、UIビルド

やっとここまで来ました。

$ docker-compose run --rm server create_db
$ yarn build

これで環境が構築されたので、http://localhost:5001にアクセスしてみます。

無事に登録画面が表示されました。

Untitled

登録を済ませたら、トップページが表示されました!

Untitled

参考

https://github.com/getredash/redash

Docker Based Developer Installation Guide

【2022年1月版】RedashをDocker Desktopで使ってみる - Qiita

GitHubで編集を提案

Discussion