- docker ( >= 1.12 ) がセットアップされていること
- docker コマンドが使える状態に
- MySQL CLI Client がインストールされていること
- mysql コマンドが使える状態に
- 次のコマンドで必要なものを準備します
- 動作は
-n
オプションを付けて確認出来るので気になる方は試してみて下さい- docker-compose の取得
- redash で使用する postgres のセットアップ
- 動作は
- vagrant を使う場合は root ユーザに変更する必要があります
$ make install setup
Redash にアクセスする際の PORT
番号は自分の環境でバインド可能なものを指定すること。
$ make up PORT=8080
ターミナルをもう一つ開いてコンテナの状態を確認します。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
764d565b3fac redash/nginx:latest "nginx -g 'daemon ..." 13 minutes ago Up 4 seconds 443/tcp, 0.0.0.0:8080->80/tcp nginx
58e63c80d498 redash/redash:latest "/app/bin/docker-e..." 13 minutes ago Up 16 seconds 5000/tcp worker
c8e8dbc0d281 redash/redash:latest "/app/bin/docker-e..." 13 minutes ago Up 15 seconds (healthy) 5000/tcp redash
56237781ad62 mysql:5.7 "docker-entrypoint..." 13 minutes ago Up 27 seconds (healthy) 0.0.0.0:3306->3306/tcp mysql
53986a4e2fb2 redis:3.0-alpine "docker-entrypoint..." 13 minutes ago Up 27 seconds (healthy) 6379/tcp redis
d4b5908caeb0 postgres:9.5.6-alpine "docker-entrypoint..." 14 minutes ago Up 26 seconds (healthy) 5432/tcp postgres
止める時は次のコマンドです。
$ make stop
Stopping nginx ... done
Stopping worker ... done
Stopping redash ... done
Stopping mysql ... done
Stopping redis ... done
Stopping postgres ... done
次の URL にアクセスします(PORT 番号は適宜変更すること)。
以下のログイン情報を入力してログインします。
- Email:
admin@example.com
- Password:
redash
ログイン後、以下の画面が表示されるので、New Query
を押してクエリを書いてみましょう。
その前に、データがないので MySQL CLI Client で MySQL Server に接続してテーブルを作成してデータを入れてみましょう。
- User:
redash
- Password:
redash
$ mysql -h127.0.0.1 -P3306 -uredash -p redash
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 216
Server version: 5.7.18 MySQL Community Server (GPL)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> CREATE TABLE `test` (
-> `id` int AUTO_INCREMENT,
-> `text` varchar(256),
-> PRIMARY KEY (`id`)
-> );
Query OK, 0 rows affected (0.07 sec)
mysql> DESC test;
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| text | varchar(256) | YES | | NULL | |
+-------+--------------+------+-----+---------+----------------+
2 rows in set (0.09 sec)
mysql> INSERT INTO `test` (`text`) VALUES ('test');
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+----+---------------+
| id | text |
+----+---------------+
| 1 | test |
+----+---------------+
1 row in set (0.01 sec)
データの準備ができたので、redash からクエリを投げてみましょう。無事結果が表示されたら動作確認は完了です。
色々触ってみて困った時は、次のコマンドで環境を reset 出来ます(起動後に設定した Redash の設定や、MySQL のデータが初期化されます)。
$ make reset up
2つの方法があります。
例えば mysql container で動いているプロセスを見たい場合、
その1
$ make debug/mysql
root@6a897d20ed22:/# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
mysql 1 0.0 9.8 1270724 200952 ? Ssl 11:42 0:01 mysqld
root 2658 0.1 0.1 20252 3036 pts/0 Ss 12:42 0:00 bash
root 2670 0.0 0.1 17504 2068 pts/0 R+ 12:42 0:00 ps aux
その2(その1 では container に入るために bash が実行されています)
$ make exec/mysql COMMAND="ps aux"
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
mysql 1 0.0 9.8 1270724 200952 ? Ssl 11:42 0:01 mysqld
root 2709 0.0 0.1 17504 2116 pts/0 Rs+ 12:43 0:00 ps aux
実行時に環境変数を通してパラメータを渡すことが出来ます。
詳しくは Makefile を見て下さい。
※ REDASH_CONTAINER_NAME
のみ redash で固定です(これは redash/nginx の nginx の設定ファイルを見れば分かります)
$ grep -E "^[A-Z]+.*" Makefile | sed -e 's/[^A-Z] *://g' | column -t -s "="
NGINX_VERSION latest
MYSQL_VERSION 5.7
REDASH_VERSION latest
NGINX_CONTAINER_NAME nginx
MYSQL_CONTAINER_NAME mysql
POSTGRES_CONTAINER_NAME postgres
REDASH_CONTAINER_NAME redash
REDASH_WORKER_CONTAINER_NAME worker
REDIS_CONTAINER_NAME redis
MYSQL_PORT 3306
PORT 8080
MYSQL_ROOT_PASSWORD redash
MYSQL_DATABASE redash
MYSQL_USER redash
MYSQL_PASSWORD redash
REDASH_ADMIN_PASSWORD redash
REDASH_ORG_NAME treasure
REDASH_COOKIE_SECRET treasure
REDASH_WORKERS_COUNT 2
BIN_DIR $(shell pwd)/bin
DOCKER_COMPOSE_YAML docker-compose.yml
DOCKER_CMD $(shell which docker)
DOCKER_COMPOSE $(shell pwd)/bin/docker-compose
DOCKER_COMPOSE_CMD $(DOCKER_COMPOSE) -f $(DOCKER_COMPOSE_YAML)
DOCKER_COMPOSE_VERSION 1.14.0
NO_OPTION_COMMANDS pull stop restart
DOCKER_COMPOSE_NO_OPTION_COMMANDS $(addprefix docker/,$(NO_OPTION_COMMANDS))
COMMAND ls -l
TARGET