😃
Redash環境をDocker Composeで構築
環境
- macOS Ventura 13.4.1
- 当時のHEAD
クローン、ビルド
まずは公式レポジトリをクローン。
% 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. | tail
↓
16.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にアクセスしてみます。
無事に登録画面が表示されました。
登録を済ませたら、トップページが表示されました!
参考
https://github.com/getredash/redash
Discussion