いつの間にかre:dashの設定が簡単になってた(Dockerを使えば)
v0.8.2-rc の頃に一回入れたことがあったのだけど 当時は中途半端だったDockerサポートがきちんと整備されていて使えるようになっていた。
http://docs.redash.io/en/latest/setup.html#docker-compose
要は、postgres イメージと Dockerイメージがあれば動きますよって話。
https://github.com/getredash/redash/blob/master/Dockerfile にあるので、 まずは自分の手元でDockerイメージを作成する。
$ git clone [email protected]:getredash/redash.git $ cd redash $ docker build -t redash .
docker-compose.yml もサンプルもredashのリポジトリに入っているので、それを使えばひとまずお試しができる https://github.com/getredash/redash/blob/master/docker-compose-example.ym
$ mv docker-compose-example.yml docker-compose.yml
docker-compose-example.yml の中身はこれ。
redash: image: redash/redash:latest ports: - "5000:5000" links: - redis - postgres environment: REDASH_STATIC_ASSETS_PATH: "../rd_ui/dist/" REDASH_LOG_LEVEL: "INFO" REDASH_REDIS_URL: "redis://redis:6379/0" REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres" REDASH_COOKIE_SECRET: veryverysecret redis: image: redis:2.8 postgres: image: postgres:9.3 volumes: - /opt/postgres-data:/var/lib/postgresql/data redash-nginx: image: redash/nginx:latest ports: - "80:80" links: - redash
ただし、アカウントの登録などの初期化処理が setup/docker/create_database.sh
にまとめられている*1ので
そちら経由でdocker-compose up
を行う。
$ setup/docker/create_database.sh
初期化が終わったあといくつかのコンテナが抜けているのであらためて docker-compose up
を実行。
2回目以降は普通に docker-compose up
が使える。
dockerの動いている環境にポート80でアクセスすれば、Re:dashが試せる。 (アカウントの初期値は admin/admin。create_database.sh に書いてある )
環境変数について
環境変数はドキュメントの記載があまりないので、コードを直接見るほうが早い。 自分がさわったやつ。
変数名 | 説明 |
---|---|
REDASH_STATIC_ASSETS_PATH | assetsのpath |
REDASH_LOG_LEVEL | ログレベル |
REDASH_REDIS_URL | redis の向き先 |
REDASH_DATABASE_URL | postgres の向き先 |
REDASH_COOKIE_SECRET | cookieのsecret |
REDASH_GOOGLE_CLIENT_ID | google OAuth を使うときのclient id |
REDASH_GOOGLE_CLIENT_SECRET | google OAuth を使うときのclient secret |
REDASH_GOOGLE_APPS_DOMAIN | google OAuthでログインを特定のドメインのみにしたい時に使う |
REDASH_ALLOW_SCRIPTS_IN_USER_INPUT | クエリーの説明部分でフォームを設定したい場合に入れる |
自分らが実際に利用する環境を用意する場合は、nginxとredash だけ docker化して、
redisとpostgres の向き先だけ別のものにしている。
後はGoogle OAuth でログインすると権限管理が楽なのでREDASH_GOOGLE_*
を設定している。
REDASH_ALLOW_SCRIPTS_IN_USER_INPUT
は便利そうなのでいれてる。
注意
上はgithubから直接落としてきたけれど、Docker Hubにあるタグがついているイメージを使ったほうが良いと思う。
https://hub.docker.com/r/redash/redash/tags/