Redash を Docker for Mac で最速で動かす
概要
Redash の Docker for Mac 上で最速で動かします。
Redash の開発はしないので、用意されたセットアップを実行するだけになります。
セットアップファイルの実行から Redash の起動までに少し修正が必要でした。
環境
macOS 10.15.3 Catalina
Docker for Mac 2.2.0.3
Redash v8.0.0.b32245
ディレクトリ構成
setup ディレクトリは、公式から git clone してきたもの。
その中の setup.sh を実行すると、redash ディレクトリが作成されます。
setup/
├ setup.sh
redash/
├ postgres-data/
├ env
├ docker-compose.yml
事前準備
setup.sh で pwgen, wget が必要なので予めインストールしておきます
$ brew install pwgen
$ brew install wget
手順
セットアップファイルをとってくる
$ git clone [email protected]:getredash/setup.git
セットアップファイルの中にある setup.sh を編集
$ git clone [email protected]:getredash/setup.git
とってきた setup.sh は Ubuntu 用なので、Mac で動くように編集する
もとのファイルから変更している箇所は
- Redash のディレクトリ作成箇所
- 不要な Docker インストールの削除
- 不要な sudo 削除
- sed が Mac で動くように修正
- docker-compose は手動でやるのでコメントアウト
あたりです。
もとのセットアップファイルは /opt/redash に作成しようとしていますが
Mac上では、自分の好きなディレクトリに設置したいので変更します。
今回はこの setup ディレクトリと同じ階層にしました。
#!/usr/bin/env bash
# This script setups dockerized Redash on Mac OS.
set -eu
REDASH_BASE_PATH=../redash
create_directories() {
if [[ ! -e $REDASH_BASE_PATH ]]; then
mkdir -p $REDASH_BASE_PATH
chown $USER $REDASH_BASE_PATH
fi
if [[ ! -e $REDASH_BASE_PATH/postgres-data ]]; then
mkdir $REDASH_BASE_PATH/postgres-data
fi
}
create_config() {
if [[ -e $REDASH_BASE_PATH/env ]]; then
rm $REDASH_BASE_PATH/env
touch $REDASH_BASE_PATH/env
fi
COOKIE_SECRET=$(pwgen -1s 32)
SECRET_KEY=$(pwgen -1s 32)
POSTGRES_PASSWORD=$(pwgen -1s 32)
REDASH_DATABASE_URL="postgresql://postgres:${POSTGRES_PASSWORD}@postgres/postgres"
echo "PYTHONUNBUFFERED=0" >> $REDASH_BASE_PATH/env
echo "REDASH_LOG_LEVEL=INFO" >> $REDASH_BASE_PATH/env
echo "REDASH_REDIS_URL=redis://redis:6379/0" >> $REDASH_BASE_PATH/env
echo "POSTGRES_PASSWORD=$POSTGRES_PASSWORD" >> $REDASH_BASE_PATH/env
echo "REDASH_COOKIE_SECRET=$COOKIE_SECRET" >> $REDASH_BASE_PATH/env
echo "REDASH_SECRET_KEY=$SECRET_KEY" >> $REDASH_BASE_PATH/env
echo "REDASH_DATABASE_URL=$REDASH_DATABASE_URL" >> $REDASH_BASE_PATH/env
}
setup_compose() {
REQUESTED_CHANNEL=stable
LATEST_VERSION=`curl -s "https://version.redash.io/api/releases?channel=$REQUESTED_CHANNEL" | json_pp | grep "docker_image" | head -n 1 | awk 'BEGIN{FS=":"}{print $3}' | awk 'BEGIN{FS="\""}{print $1}'`
cd $REDASH_BASE_PATH
GIT_BRANCH="${REDASH_BRANCH:-master}" # Default branch/version to master if not specified in REDASH_BRANCH env var
wget https://raw.githubusercontent.com/getredash/setup/${GIT_BRANCH}/data/docker-compose.yml
sed -Ei '' "s/image: redash\/redash:([A-Za-z0-9.-]*)/image: redash\/redash:$LATEST_VERSION/" docker-compose.yml
# echo "export COMPOSE_PROJECT_NAME=redash" >> ~/.profile
# echo "export COMPOSE_FILE=/opt/redash/docker-compose.yml" >> ~/.profile
# export COMPOSE_PROJECT_NAME=redash
# export COMPOSE_FILE=/opt/redash/docker-compose.yml
# docker-compose run --rm server create_db
# docker-compose up -d
}
create_directories
create_config
setup_compose
docker-compose.yml を編集
- 生成された docker-compose.yml で /opt/redash となっている箇所を . に差し替える(setup.sh で Redash のディレクトリ作成箇所を変えたため)
- restart : always を消す(必須ではない)
- nginx の ports を 8080:80 にする(必須ではない)
version: "2"
x-redash-service: &redash-service
image: redash/redash:8.0.0.b32245
depends_on:
- postgres
- redis
env_file: ./env
services:
server:
<<: *redash-service
command: server
ports:
- "5000:5000"
environment:
REDASH_WEB_WORKERS: 4
scheduler:
<<: *redash-service
command: scheduler
environment:
QUEUES: "celery"
WORKERS_COUNT: 1
scheduled_worker:
<<: *redash-service
command: worker
environment:
QUEUES: "scheduled_queries,schemas"
WORKERS_COUNT: 1
adhoc_worker:
<<: *redash-service
command: worker
environment:
QUEUES: "queries"
WORKERS_COUNT: 2
redis:
image: redis:5.0-alpine
postgres:
image: postgres:9.6-alpine
env_file: ./env
volumes:
- ./postgres-data:/var/lib/postgresql/data
nginx:
image: redash/nginx:latest
ports:
- "8080:80"
depends_on:
- server
links:
- server:redash
起動
$ docker-compose run --rm server create_db
$ docker-compose up -d
接続
http://localhost:8080 にアクセスして、この画面が出てきたら成功
Author And Source
この問題について(Redash を Docker for Mac で最速で動かす), 我々は、より多くの情報をここで見つけました https://qiita.com/Tomoyuki_Mikami/items/a06ee33b096bc5deb67b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .