TL;DR
- 目的 dockerの理解
新しいMacBookも買ったので、ローカルの環境にDockerで開発環境を作りたい
docker-machineとdocker-composeを使う。
バックエンドのMySQLでmroongaを使ってて、Macで開発環境を作っていたらMacのOSアップデート時に、見事におかしくなってしまい。
ローカル環境はちゃんと仮想化しておくべしだと痛感した故。
環境
Mac OS X EL Capitan バージョン10.11.3資料
Dockerファイル!整備されています!
https://hub.docker.com/r/groonga/mroonga/この資料の範囲
dockerでmroongaのとあるバージョンをインストールして、ホスト側から接続するまでの説明
手順
groonga/mroongaのDockerファイルをclone
git clone https://github.com/mroonga/docker mroonga_docker
docker-machineを作成します。
docker-machine create --driver virtualbox mroonga
docker-machine env mroonga
eval $(docker-machine env mroonga)
docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default - virtualbox Stopped Unknown
mroonga - virtualbox Running tcp://192.168.99.105:2376 v1.10.0
nodeapi - virtualbox Running tcp://192.168.99.103:2376 v1.10.0
ビルド
git clone https://github.com/mroonga/docker mroonga_docker
cd mroonga_docker/
docker build -t mroonga_docker Dockerfile/mysql5628_mroonga511
run
docker run --detach --name mroonga -p 3307:3306 mroonga_docker
docker ps
ホストから接続
mysql -h$(docker-machine ip mroonga) -P3307 -u root
検索できるかどうかのテスト
create database test;
use test;
CREATE TABLE diaries (id INT PRIMARY KEY AUTO_INCREMENT,content VARCHAR(255),FULLTEXT INDEX (content)) ENGINE = Mroonga DEFAULT CHARSET utf8;
INSERT INTO diaries (content) VALUES ("It'll be fine tomorrow.");
INSERT INTO diaries (content) VALUES ("It'll rain tomorrow");
INSERT INTO diaries (content) VALUES ("明日は晴れるでしょう");
INSERT INTO diaries (content) VALUES ("晴れ時々曇りとなります");
INSERT INTO diaries (content) VALUES ("雨上がりはいいですね");
INSERT INTO diaries (content) VALUES ("梅雨の季節になりました");
mysql> SELECT * FROM diaries WHERE MATCH(content) AGAINST("fine");
+----+-------------------------+
| id | content |
+----+-------------------------+
| 1 | It'll be fine tomorrow. |
+----+-------------------------+
1 row in set (0.01 sec)
mysql> SELECT * FROM diaries WHERE MATCH(content) AGAINST("晴れ");
+----+-----------------------------------+
| id | content |
+----+-----------------------------------+
| 3 | 明日は晴れるでしょう |
| 4 | 晴れ時々曇りとなります |
+----+-----------------------------------+
2 rows in set (0.01 sec)
その他コマンド
docker start mroonga
docker stop mroonga
docker images
docker ps
docker exec -it mroonga_docker /bin/bash
(おまけ)4コマ漫画連載中on東洋経済オンライン
東洋経済オンラインで「エンジニア夫婦のあるある日記」を連載中です