参考にした記事など
- https://github.com/amancevice/superset/blob/master/examples/mysql/docker-compose.yml
- http://blog.soushi.me/entry/2017/04/07/165144
- https://qiita.com/neko-neko/items/de8ea13bbad32140de87
- https://qiita.com/suzukihi724/items/91950450734e4c9913cf
やったこと
-
Superset をDockerを使ってさくっと動かしてみました
- https://github.com/amancevice/superset/tree/ce534c15a4752642098c4a7beffaf44233b60bc0/examples/mysql が大いに参考になりました(むしろほぼこれ)
- MySQLのイメージをそのまま使うとcharsetがlatin1になり日本語などを使う場合に不都合なのでutf8mb4にしています
-
docker 17.03.2-ce
-
docker-compose 1.16.1
-
Superset 0.20.4
-
MySQL 5.7
-
Redis 4.0.2
前提
- docker環境
- git, docker, docker-composeが必要となります
-
https://qiita.com/suzukihi724/items/91950450734e4c9913cf#1-ec2%E3%81%AB%E6%9C%80%E4%BD%8E%E9%99%90%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%84%E3%83%BC%E3%83%AB%E3%82%92%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97 に分かりやすく書かれていますのでそちらを御覧ください
- docker-composeは https://docs.docker.com/compose/install/#install-compose から最新のバージョン番号を確認し新しいものを入れると良いと思います
1) Docker起動
$ sudo service docker start
$ sudo chkconfig docker on
2) docker-compose.yml
$ git clone https://github.com/amancevice/superset.git
$ cd superset
- docker-compose.yml
version: '3'
services:
superset:
build:
context: .
args:
SUPERSET_VERSION: 0.20.4
image: amancevice/superset
ports:
- 80:8088
depends_on:
- mysql
- redis
volumes:
- ./superset:/etc/superset
restart: always
mysql:
container_name: mysql
image: mysql:5.7
restart: always
ports:
- 3306:3306
volumes:
- ./mysql:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: superset
MYSQL_DATABASE: superset
MYSQL_USER: superset
MYSQL_PASSWORD: superset
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
redis:
image: redis
restart: always
volumes:
- redis:/data
volumes:
mysql:
external: false
redis:
external: false
- ポイントは mysql の commandに
--collation-server=utf8_unicode_ci
を付けているところです
3) superset_config.py
superset/superset_config.py
import os
MAPBOX_API_KEY = os.getenv('MAPBOX_API_KEY', '')
CACHE_CONFIG = {
'CACHE_TYPE': 'redis',
'CACHE_DEFAULT_TIMEOUT': 300,
'CACHE_KEY_PREFIX': 'superset_',
'CACHE_REDIS_HOST': 'redis',
'CACHE_REDIS_PORT': 6379,
'CACHE_REDIS_DB': 1,
'CACHE_REDIS_URL': 'redis://redis:6379/1'}
SQLALCHEMY_DATABASE_URI = 'mysql://superset:superset@mysql:3306/superset?charset=utf8mb4'
SQLALCHEMY_TRACK_MODIFICATIONS = True
SECRET_KEY = 'thisISaSECRET_1234'
ENABLE_PROXY_FIX = True
- ALBなどを使ってhttpsでアクセスする場合
ENABLE_PROXY_FIX = True
がないとhttpにリダイレクトされます
4) 起動
$ docker-compose up -d
5) 管理アカウント作成
$ docker-compose exec superset superset-init
Username [admin]:
User first name [admin]:
User last name [user]:
Email [[email protected]]:
Password:
Repeat for confirmation:
これで作成した管理アカウントでログインできるようになりした