EC2のAMIがありますがだいぶバージョンが古いようなので&活発に開発が続いてるので,最新に付いていくためにがんばってみます.
version: '2'
services:
redash:
image: redash/redash:0.12.0.b2072
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://redash:redash@postgres:5432/redash"
REDASH_COOKIE_SECRET: "MEExaMPle2zUhDa3PwExAMp1ecT2KF"
REDASH_GOOGLE_APPS_DOMAIN: "example.jp"
REDASH_GOOGLE_CLIENT_ID: "2345EXAMPLE3-69Examp1e5d7jngstiu1sExamp1e3g8h.apps.googleusercontent.com"
REDASH_GOOGLE_CLIENT_SECRET: "gVEXAmpLeJ61VqVlexAmPLeY"
REDASH_HOST: "https://redash.example.jp"
REDASH_MAIL_SERVER: "smtp.example.jp"
REDASH_MAIL_PORT: 587
REDASH_MAIL_USE_TLS: "True"
REDASH_MAIL_USERNAME: "username"
REDASH_MAIL_PASSWORD: "password"
REDASH_MAIL_DEFAULT_SENDER: "redash@example.jp"
REDASH_DATE_FORMAT: "YYYY-MM-DD"
REDASH_ALLOW_SCRIPTS_IN_USER_INPUT: "True"
volumes:
- .:/opt/redash/local
- ./setup/docker/supervisord/supervisord.conf~:/opt/redash/supervisord/supervisord.conf:ro
# - /etc/localtime:/etc/localtime:ro
redis:
image: redis:2.8
postgres:
image: postgres:9.3
environment:
POSTGRES_USER: "redash"
POSTGRES_DB: "redash"
POSTGRES_PASSWORD: "redash"
volumes:
- /opt/postgres-data:/var/lib/postgresql/data
redash-nginx:
image: redash/nginx:latest
ports:
- "80:80"
links:
- redash
設定値の注意
REDASH_DATABASE_URL
yamlの下のほうにあるpostgres
のユーザ名/パスワード/DB名とうまく合わせましょう.
REDASH_GOOGLE_*
GoogleAppsで認証するならGoogle側でも設定が必要
REDASH_MAIL_*
メール通知とかしたいなら設定.パスワードリマインドしたいならメール必要.
REDASH_DATE_FORMAT
これ設定しないと,クエリ結果にTimestampがあったときにMM/DD/YY
になってしまって読み辛い.
REDASH_ALLOW_SCRIPTS_IN_USER_INPUT
Dashboardに置くテキストにJavaScriptが使えるようになる.Datepickerとか使えるのでクエリにパラメータ使いたい場合は便利.
参考:
supervisord.conf
を上書きしてるやつ
クエリ実行の並列度を上げるため.このへんはホストマシンのスペックにもよるので,不足してると思ったらやれば良い
実行
dockerとdocker-composeをインストールしたら
docker-compose up -d
確認
ec2-user@redash$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------------------------
redash_postgres_1 /docker-entrypoint.sh postgres Up 5432/tcp
redash_redash-nginx_1 nginx -g daemon off; Up 443/tcp, 0.0.0.0:80->80/tcp
redash_redash_1 supervisord -c /opt/redash ... Up 0.0.0.0:5000->5000/tcp, 9001/tcp
redash_redis_1 docker-entrypoint.sh redis ... Up 6379/tcp
あとはブラウザからEC2インスタンスのIPへアクセスすれば良い.
バージョンアップ
DockerHubでre:dashの新しいバージョンのタグを探す(けっこう頻繁に上がってます)
docker-compose.ymlのimage: redash/redash:0.12.0.b2072
部分のタグを書き換えてから
# redashコンテナ止めて
docker-compose stop redash
# redashコンテナ削除して
docker-compose rm -f redash
# redashコンテナ再作成
docker-compose up -d redash
※migrationとかどうやるのが正解なんだろう...?