はじめに
OSSのデータ可視化ツールであるRedashをインストールしようとして詰まったので、メモします。
環境
MacBookAirを使用しています。OSなどは次の通りです。
$sw_vers
ProductName: Mac OS X
ProductVersion: 10.13.6
BuildVersion: 17G14033
$docker --version
Docker version 20.10.0, build 7287ab3
Redashについて
https://redash.io/
OSSのデータ可視化ツールで、webブラウザからダッシュボードなどを作成、共有することができます。
詳細は割愛しますが、Pythonが使えるということもあって、試してみようと思いました。
SaaS版は有償ですが、ローカルにインストールして動かす分には無償で使えます。
インストール
下のURLに沿ってインストールしていきます。
https://redash.io/help/open-source/dev-guide/docker
1.Gitからcloneしてくる
git clone https://github.com/getredash/redash.git
cd redash/
2.docker-composeでビルドする
docker-compose up -d
これだけかーと思っていたら、エラーが。
ERROR: Cannot install -r requirements_all_ds.txt (line 12), -r requirements_all_ds.txt (line 21) and -r requirements_all_ds.txt (line 34) because these package versions have conflicting dependencies.
The conflict is caused by:
atsd-client 3.0.5 depends on python-dateutil
azure-kusto-data 0.0.35 depends on python-dateutil>=2.8.0
dql 0.5.26 depends on python-dateutil<2.7.0
To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies
ERROR: Service 'server' failed to build : The command '/bin/sh -c if [ "x$skip_ds_deps" = "x" ] ; then pip install -r requirements_all_ds.txt ; else echo "Skipping pip install -r requirements_all_ds.txt" ; fi' returned a non-zero code: 1
ググってみると、下のURLがヒット。
どうも同じエラーで詰まった人がいた模様。コメントを見ると、
I think you can fix this in the short term by removing dql from your >requirements.txt file. The issue is DQL requires python-dateutil of 2.7 or older while azure-kuso-data needs 2.8 or above.
とのことで、dql
を消せばよいとのこと。だったら消しておいてくれればいいのに...
ということで、requirements_all_ds.txt
の中でdql==0.5.26
となっている行を削除してdocker-compose up -d
しました。
すると再びエラーが。
The conflict is caused by:
The user requested mysqlclient==1.3.14
memsql 3.0.0 depends on mysqlclient==1.3.13
To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict
ERROR: Cannot install -r requirements_all_ds.txt (line 19) and mysqlclient==1.3.14 because these package versions have conflicting dependencies.
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies
ERROR: Service 'server' failed to build : The command '/bin/sh -c if [ "x$skip_ds_deps" = "x" ] ; then pip install -r requirements_all_ds.txt ; else echo "Skipping pip install -r requirements_all_ds.txt" ; fi' returned a non-zero code: 1
またかよ...ということで、同じファイル内でmemsql
が記載されている行を削除。
再びdocker-compose up -d
すると、最後まで動きました。
念のため、コンテナが起動しているか確認。
$docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7381b4f01310 redash_worker "/app/bin/docker-ent…" 3 minutes ago Up 3 minutes 5000/tcp redash_worker_1
febf478bfd78 redash_scheduler "/app/bin/docker-ent…" 3 minutes ago Up 3 minutes 5000/tcp redash_scheduler_1
edddd8203768 redash_server "/app/bin/docker-ent…" 3 minutes ago Up 3 minutes 0.0.0.0:5000->5000/tcp, 0.0.0.0:5678->5678/tcp redash_server_1
c1e85b4cfa69 redis:3-alpine "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 6379/tcp redash_redis_1
d32426258263 djfarrelly/maildev "bin/maildev --web 8…" 3 minutes ago Up 3 minutes 25/tcp, 0.0.0.0:1080->80/tcp redash_email_1
56e86d84388a postgres:9.5-alpine "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 0.0.0.0:15432->5432/tcp redash_postgres_1
確かに一通り動いてそう。
3.クライアントで必要なもののインストール
npm install
エラーなく動いた。
4.データベース作成
手順に書かれているように実行。エラーなく動いた。
# Create tables
docker-compose run --rm server create_db
# Create database for tests
docker-compose run --rm postgres psql -h postgres -U postgres -c "create database tests"
5.webpack Dev Server起動
ここまで行ったところでhttp://localhost:5000/
でRedashが使えると書かれていますが、
実際にアクセスするとメールアドレスなどを入力する画面が出て、セットアップボタンを押すと結局エラーに(画面キャプチャし忘れました...)。
以下のコマンドでクライアント側も起動してあげる必要がありそうです。
npm run build
npm run start
ここまででインストールと起動は終了。
動作確認
http://localhost:5000/
にブラウザでアクセスすると、無事にアクセスできました。
まとめ
Redashのインストールで詰まった箇所の対応を簡単にメモしました。
今後はRedashを動かしてみたいと思います。