577 文字
3 分
Dockerを使って、vagrant upするだけで面倒なRailsの開発環境を瞬時に構築
概要
vagrant up一発でRuby on Railsの開発環境を構築出来るようにしました。- ローカルのファイルシステムをDocker上のアプリケーションサーバから参照しているので好きなテキストエディタを使えます。
- すぐにRailsで開発を行えます。カスタマイズしたい場合はForkして頂くのがいいと思います。
- dockerあれば、chef使わなくて良いですね。
初期設定
VirtualBox用のVMイメージをダウンロードします。(任意)
% vagrant box add precise64 http://files.vagrantup.com/precise64.boxあとは、サンプルコードをcloneしてvagrant upするだけです。
- 初回は30分程度かかります。
- Docker imageのダウンロードとimageの構築があるので。
- これでも、Containerのベースは1つにしてあるので、ダウンロード時間は短くするようにしています。
- UbuntuのCDNが遅いというのも1つの要因ではあります。
- 2回目以降は30秒程度でコンテナが起動します。
% cd docker_rails_dev_env_example% vagrant uphttp://localhost<3000>3000>/ へアクセスすると以下のような表示が出るはずです。

主な使い方
VMの停止
% vagrant haltVMの起動
% vagrant up2回目以降は、以下のように35秒でVM、コンテナが起動します。
(MacBook Pro (Retina, Mid 2012)で計測)

主なソフトウェアのバージョン
- Ruby 2.2 + Ruby on Rails 4.2
- MySQL 5.6
- Redis 2.8
良い点・悪い点
良い点
- VirtualBoxとVagrantだけあれば、容易にプロジェクト毎に統一された開発環境を構築出来る。
- 2回目以降の起動が高速
- ローカルのファイルシステム上のファイルを変更して、即時プレビュー出来るので好きなエディタで開発出来る。
悪い点
- Gemfileを更新したら、
./d rebuildしてrailsのイメージを再構築する必要があり、bundle installをゼロから行うため時間が4分ぐらいかかる。- 手元のホストでもコマンドを直接打つためにbundle installしないといけない。
- 開発者がDockerの使い方を知る必要がある
その他
- レポジトリ: https://github.com/matsubo/docker_rails_dev_env_example
- ドキュメントはREADME.mdに細かく記載してあります。
- Vagrantfileがエントリーポイントになるので、このファイルから追っていけると思います。
参考資料
Dockerを使って、vagrant upするだけで面倒なRailsの開発環境を瞬時に構築
https://blog.teraren.com/posts/docker-rails-vagrant/