LoginSignup
7
7

More than 5 years have passed since last update.

Railsで作成するMVPの構築を効率化してみる

Posted at

リーン・スタートアップでいうところのMVP(Most Valuable Product)を作る機会がここのところよくあり、MVPの立ち上げを効率よくするためにベースとして使っているリポジトリを公開してみます。

ここでは、そのリポジトリを使って、ローカルPC上に開発環境を構築して、その上で動作確認しながら開発し、Herokuで限定公開する流れをご紹介します。

それでは手順を順におっていきます。

準備

開発の環境はMacを想定しています。必要なアプリケーション類を入れていきます。

VirtualBox

仮想化はVirtualBoxのバージョンは4.3.12で動作を確認しています。下記から対象のOSのインストーラーをダウンロードしてインストールします。

Vagrant

本体

Vagrantは1.6.2で動作を確認しています。下記から対象のOSのインストーラーをダウンロードしてインストールします。

プラグイン

プラグインが必要になるので、コマンドラインからvagrant pluginでインストールします。

$ vagrant plugin install vagrant-omnibus

Berkshelf

ホストOS側にChefの公開CookbookをいれるのためにBekshelfが必要になるので、rbenvを下記のURLを参照にしていれます。

Rubyのバージョンは特に問わないのですが、ここでは2.1.2をいれます。

$ rbenv install 2.1.2
$ rbenv global 2.1.2

gemでBerkshelfをいれます。

$ gem install berkshelf

開発環境の構築

ベースになるリポジトリをgit cloneして、依存するcookbookをいれます。

$ git clone git@github.com:hirotaka/rails-for-mvp.git
$ cd rails-for-mvp
$ berks vendor vendor/cookbooks

このままでもいいのですが、共有フォルダをNFSにすることでひとつひとつのコマンドの実行が早くなります。

NFSで共有するにはIPを固定にしなくてはいけないので、例えば下記の設定をVagrantfileに追加します。

Vagrantfile
config.vm.network :private_network, ip: "192.168.33.11"

また、共有フォルダのオプションを変更します。

Vagrantfile
config.vm.synced_folder ".", "/home/vagrant/rails-for-mvp", type: :nfs, create: true

vagrant upします。ネットワーク環境などによりますが結構時間がかかります。

$ vagrant up

立ち上がったらvagrant環境にsshでログインします。

$ vagrant ssh

データベースを作成します。

$ cd rails-for-mvp
$ cp config/database.yml.example config/database.yml
$ bundle install --path vendor/bundle
$ bundle exec rake db:create

適当に何かscaffoldでテーブルを作成します。ここでは、Userテーブルを作成します。

$ bundle exec rails generate scaffold User name:string email:string
$ bundle exec rake db:migrate

Railsサーバを起動します。

$ bundle exec rails server

ブラウザで下記に接続して管理画面を表示します。

追加したファイルをコミットします。

$ git add -a
$ git commit -am'Add user model'

デモ環境

他の人でも見られるように、Herokuにデモ環境を構築していきます。

すでにHerokuのアカウントがあり、Heroku Toolbeltが設定されている状態で、

$ heroku create
$ git push heroku master
$ heroku run rake db:migrate
$ heroku open

これでブラウザが起動して、開発環境と同じアプリが動作していることを確認します。

以上です。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7