概要
Drone で redis を使うときにはとても簡単に使えるのですが mysql はちょいと手間でハマったので共有
Redis を使う
services:
- redis
こう書いておくと、それだけで localhost:6379 と利用ができます。
簡単
MySQL を使う
公式サイトを見ると
services:
- mysql
scripts:
- mysql -u root -e 'create database test;'
- mysql -u root -D test < schema.sql
と書いておけば localhost:3306 で利用できるような事が書いてありますがそれだとうまく行きませんでした。
キチンとホスト名を指定して書かないと話してくれないようです。
scripts:
- mysql -u root -h127.0.0.1 -P 3306 -e 'create database test;'
- mysql -u root -h127.0.0.1 -P 3306 -e 'GRANT ALL ON mydatabast.* TO ""@"%"'
- mysql -u root -h127.0.0.1 -P 3306 -e 'GRANT ALL ON mydatabase.* TO ""@"localhost"'
- mysql -u root -h127.0.0.1 -P 3306 -D test < schema.sql
おまけにテスト時には root でアクセスしていると思いきや、そうではないのできちんと GRANT しておく必要もあります。
(私の環境ではubuntu ユーザ)
MySQL 5.6 を使ったりその他のDBを使いたい場合
docker registryには別のDBが使いたければ
services:
- dockerfile/rethinkdb # same as dockerfile/rethinkdb:latest
- barnybug/elasticsearch:1.0.1
こんな風にすれば指定できる、とあるのですが、mysql5.6を利用したところ、ログが出てこなくなってしまったので止む無くテスト時のtables.sqlでは5.5でできる範囲のみを書くようにしています。