手元の環境でredashを立ち上げるまでに苦戦したのでメモ。
$ lsb_release -a Distributor ID: Ubuntu Description: Ubuntu 20.04.5 LTS Release: 20.04 Codename: focal $ docker --version Docker version 20.10.22, build 3a2c30b $ docker compose version Docker Compose version v2.12.2
これを書いている人のスペック
こちらにセットアップ手順が書かれているので参考にすすめていきます。
実際に自分が行った手順は以下になりますが、カスなので手順どおり行っていない可能性があるのでご了承ください。
とりあえずcloneします。
git clone https://github.com/getredash/redash.git cd redash/
REDASH_COOKIE_SECRET
が必要なので、秘密鍵を生成して.env
に書き込みます。
python -c 'import secrets; print(secrets.token_hex())' >> .env
データベースを生成する必要があるらしいので、コピペでコマンドを実行していきます。
docker-compose run --rm server create_db >> ... >> AttributeError: 'EntryPoints' object has no attribute 'get'
っと、ここでエラーが発生しました。
解決方法はこちらに書いてました。importlib-metadata
のバージョンを変えるとよいとのこと。
requirements_bundles.txt
を修正します。
## requirements_bundles.txt # importlib-metadata>=1.6 # を以下に変更 imporlib-metadata==4.13.0
で、再び実行。無事通りました。
ついでにもう一つデータベースを作っています。
# 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"
それではサーバーを立ち上げていきます。
docker composeのコマンドを叩くだけです。
docker compose up -d
するとコンテナが5つ立ち上がります。
http://localhost:5000
にアクセスしてログインしてみると、エラーメッセージが表示されています。
# こんな感じのエラーメッセージ FileNotFoundError: [Errno 2] No such file or directory: '/app/redash/settings/../../client/dist/index.html'
これも解決方法が載っており、ホストマシンにnpmパッケージを入れると解決するとのことらしいです。
https://discuss.redash.io/t/filenotfounderror-errno-2-no-such-file-or-directory-app-redash-settings-client-dist-index-html/7490/2discuss.redash.io
# 手元では --legacy-peer-depsがないと弾かれたので追加 sudo npm install --no-optional --legacy-peer-deps sudo npm run build
その後、コンテナを再起動します。
docker compose build docker compose up -d
http://localhost:5000
にアクセスしてログインしてみると、、、
おおおお〜〜〜無事いつものredash画面が表示されました!!!めでたい!!!
そして反省へ
さて、ここまで来るのに半日くらいかかってしまったのですが、なぜこんなに時間がかかってしまったのか考えてみました。
- 手順をちゃんと読んでない
- 何も知らないのに勝手に判断して、必要なコマンドを端折っていた可能性がある
- エラー文をちゃんと読んでない
- 何が悪いのか丁寧に書かれているので、ちゃんと読むべき
- エラー発生→ググる→解決方法試す→エラー発生→ググる→…を繰り返すことで問題の本質から離れていく
- 頭がバグってくるとこの状況に陥りやすい
- 課題はなにか、解決する手段はどれがあるか、試した結果どうだったか、を逐一確認しながら進めるべき
全く知らない技術に触れるとき、うまくいかない部分って必ずあると思います。どんなつよつよでも。
うまくいかない時にどう立ち回るか、がつよつよと凡夫の差かなと思います。
特に自分はドキュメントを流し読みするクセがありますが、多分英語を読むことで感じるストレスが大きいことが原因かなと思いました。伸びしろですねぇ
とりあえず動かせたのでよかったです。
追記(2024.01.18)
間違ってローカルのリポジトリを消してしまったので再度設定しました。
git clone git@github.com:getredash/redash.git vim .env # docker compose build --no-cache # fish ターミナルでは nvm が使えないので代わりに以下を導入 curl -fsSL https://fnm.vercel.app/install | bash fnm install 16 fnm use 16 yarn --frozen-lockfile docker compose run --rm server create_db yarn build docker compose up # --> port 5001 にアクセス