Dockerで作るシンプルなRails開発環境
ずっとローカル開発環境はVagrantを使っていましたが、Docker for Macがリリースされてからは徐々にDockerにしています。
コードはIDE等を使って書いたほうがいいと思っているのでVagrantのsynced_foldersを好んで使っていました。
Dockerの入門記事ではよくVagrantでVirturalBox上のUbuntuにDockerを入れて…とかやっているのが多くてなんか冗長というか、違和感がありました。
Docker for Macでは直接Dockerが使えるのでコンテナを--volume
オプションで起動するとsynced_foldersのようなことは出来るし、ホストとコンテナの間に余計なものがないのでだいぶスッキリしました。
設定ファイルは以下のようになりました。ほとんど公式のクイックスタートのままですが。 Quickstart: Compose and Rails
環境は以下の通りです。
- Mac OS X 10.11.6
- Docker 1.12
- docker-compose 1.8.0
Dockerfileとdocker-compose.ymlをRailsプロジェクトディレクトリ直下に置いて、
config/database.ymlのhost:
をmysql
に書き換えて、以下のコマンドでOK。
docker-composeで立ち上げるとdepends_on
とかlinks
で指定した名前で接続できるので便利。
docker-compose build docker-compose up
Gemfileを書き換えた時はbuildからやり直しでちょっと時間がかかるけど、それ以外は不満はない。 あとコンテナサイズが大きくなりそうなんでDBのデータも外出ししておいた。