Vagrant + docker-compose で Rails 5.1.0 (Puma) + Nginx + MySQL 環境構築
概要
簡易的に Rails 環境を構築・開発できる様にすべく構築しました。
こんな時に利用してます。
- 新規プロジェクト開発
- 新規 gem, その他ミドルウェアの試験
- 簡単なモックを作ってディレクターに見せたい時とか
構築手順をまとめました。
環境
- macOS Sierra 10.12.5
- VirtualBox 5.1.18r114002
- Vagrant 1.9.3
- VagrantBox Ubuntu 14.04.5
- Docker version 17.06.0-ce, build 02c1d87
Git Clone
1 | macOS%$ git clone https://github.com/kenzo0107/vagrant-docker |
Rails プロジェクト作成
1 | // database = mysql |
puma.rb 設定
1 | // backup |
- ./rails/config/puma.rb
1 | threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i |
データベース接続情報設定
1 | // backup |
- ./rails/config/database.yml
1 | default: |
DB 作成
1 | vagrant%$ docker-compose run --rm web rails db:create |
Rails 実行
1 | vagrant%$ docker-compose up -d |
http://192.168.35.101 にアクセスすると Rails のウェルカムページが表示されます。
rails g
rails g
実行時は基本 one-off container で実行するのが良いです。
例えば以下は articles テーブルを作成、また、関連する controller, view, model を作成します。
1 | vagrant%$ docker-compose run --rm web rails g scaffold article title:string body:text |
Gemfile 更新
Gemfile 更新した際はビルドし再起動します。
1 | vagrant%$ docker-compose stop web |
あとがき
Rack server との接続は一癖ありましたが、そこさえ乗り越えたら
すっと行きました ♪
DB は 3306 でオープンしてるので
Mac のローカルから Sequel Pro で接続して確認できます。
これをベースに EFK でログ確認できる様にしたり、
mailcatcher でメール機能を試験できる様にしたりと
何かと便利です。
Docker 有難や ♪
Vagrant + docker-compose で Rails 5.1.0 (Puma) + Nginx + MySQL 環境構築
https://kenzo0107.github.io/2017/08/21/2017-08-22-docker-compose-rails-nginx-mysql-on-vagrant/