環境
- 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
前提
- 4.1. デプロイする — Cloudn PaaS v2 ドキュメント
- 上記の経験または同等の知識を有する
サンプル
参考
- Deploying a Rails App to CloudFoundry - Pivotal Labs
- Cloud Foundry Environment Variables | Pivotal CF Docs
- Rails 4 on Heroku | Heroku Dev Center
- Getting started with PostgreSQL service | IBM Bluemix Docs
アプリの作成
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を作成し、プッシュしないファイル・ディレクトリを記述する。
.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