LoginSignup
7
7

More than 5 years have passed since last update.

Cloud Foundry v2系サービスにRailsアプリをデプロイする

Last updated at Posted at 2014-06-25

環境

  • Ruby 2.1.2
  • Rails 4.1.1

Cloudn PaaS

  • gud version: 6.0.1-cloudn.1
  • API version: 2.0.0
  • PostgreSQL 9.2

Bluemix

  • gud version: 6.0.2-96d242f
  • API version: 2.2.0
  • PostgreSQL 9.1

前提

サンプル

参考

アプリの作成

rails _4.1.1_ new blog_cfv2
cd blog_cfv2
rails g scaffold Post title body:text
db/seeds.rb
1.upto(5) do |i|
  Post.create(title: "title #{i}", body: "body #{i}")
end
rake db:migrate db:seed
config/routes.rb
Rails.application.routes.draw do
  resources :posts
  root 'posts#index'
end
rails s

デプロイの準備

追加・編集するファイルは次の通り:

  • .cfignore
  • Gemfile, Gemfile.lock

1.ファイル.cfignoreを作成し、プッシュしないファイル・ディレクトリを記述する。

tmp/
log/

2.Gemfileファイルを修正、必要なgemを追加する。

Gemfile
source 'https://rubygems.org'

gem 'rails', '4.1.1'
gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc

gem 'spring', group: :development
gem 'sqlite3', group: [:development, :test]

group :production do
  gem 'pg'
  gem 'rails_12factor'
end
bundle

デプロイ

1.サービス(PostgreSQL)を作成する。

  • marketplaceで、現在利用可能なサービスを確認できる。
  • create-serviceで、サービスを作成できる。
  • servicesで、生成済みサービスを確認できる。
gud marketplace
gud create-service postgresql default blog-postgres
gud services

2.アプリをプッシュし、サービスとバインドする。

gud push blog_cfv2 --no-start
gud bind-service blog_cfv2 blog-postgres
gud services

3.環境変数を設定する。

gud set-env blog_cfv2 SECRET_KEY_BASE `rake secret`
gud env blog_cfv2

4.データベースをマイグレートしてサーバを起動する。

gud push -c 'bundle exec rake db:migrate db:seed && bundle exec rails s -p $PORT' blog_cfv2
gud logs blog_cfv2 --recent
gud apps

エイリアス版

gud m
gud cs postgresql default blog-postgres
gud s
gud p blog_cfv2 --no-start
gud bs blog_cfv2 blog-postgres
gud s
gud se blog_cfv2 SECRET_KEY_BASE `rake secret`
gud e blog_cfv2
gud p -c 'bundle exec rake db:migrate db:seed && bundle exec rails s -p $PORT' blog_cfv2
gud logs blog_cfv2 --recent
gud a

Bluemix

create-serviceのdefaultを100に変更する。

cf m
cf cs postgresql 100 blog-postgres
cf s
cf p blog_cfv2 --no-start
cf bs blog_cfv2 blog-postgres
cf s
cf se blog_cfv2 SECRET_KEY_BASE `rake secret`
cf e blog_cfv2
cf p -c 'bundle exec rake db:migrate db:seed && bundle exec rails s -p $PORT' blog_cfv2
cf logs blog_cfv2 --recent
cf a
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