モチベーション
- Redashを楽に安くホスティングしたい
- 以前はherokuでのホスティングをサポートしていたけど、現在はサポートなし
- しかしDockerでのホスティングをサポートしているようなので、DockerイメージをherokuにpushしてしまえばherokuでもRedash使えるのではないかと考えた
いくつか気をつけるべき点があったけど、比較的すんなりRedashをherokuで動かすところまで行けたので要点をまとめる
気をつけるべき点
herokuでDockerコンテナ動かすにあたっていくつか気をつける点があった。
- WORKDIRのデフォルトが
/
なので/app
に変更する - $PORTをポート番号として受け付ける必要がある
- 公式のDockerイメージで使うサーバ起動コマンドは5000番ポートが決め打ちで書かれていて、さらに外から変更することができなかった
- ↑を解決するためにENTRYPOINTの部分だけ削除したDockerfileからイメージを作ってDockerHubに置いてそれを使うようにした
あとはアドオンの問題。HerokuRedisの無料プランを使うと20接続までしか受け付けず、コネクションエラーになる。RedisCloudだと無料で30コネクションまで使えてうまく動く。
できあがったDockerfileは↓で管理しているのでherokuでRedash使ってみたい方は参考にしてみてください。
willnet/redash-on-heroku: Dockerfiles for hosting redash on heroku
感想
herokuでDockerコンテナ動かすの、思ってたよりかなり楽だった。herokuすごい