其實production環境應該要在一開始就先建好,
否則到時候一部署上去發現一大堆問題就來不及了,
而要部署到機器上,流程大概是這樣:
這時候有個好用的東西出來了,
假如你沒有非常大的流量,只是想要測試一下,
那heroku非常的適合你。
ps
當你的流量夠大之後,heroku也許還是適合你,但你的口袋要夠深才行
在部署之前要先將你的專案push到github上面,待會要將你的SSH clone URL複製下來,待會會用到
我的習慣是會開一個專門給heroku用的branch,讓production跟development分的更清楚一點
現在用的branch是heroku
有一個常見的問題是heroku不支援sqlite3,記得把該移到development和test環境的gem做好
下面是參考的Gemfile定:
group :development do
gem "better_errors"
gem "binding_of_caller"
end
group :development, :test do
gem 'pry-rails'
gem 'rspec-rails', '~> 3.1.0'
gem 'faker'
gem 'guard'
gem 'guard-rspec'
gem 'terminal-notifier-guard'
end
group :production do
gem 'pg'
gem 'rails_12factor'
end
先申請heroku帳號並安裝toolbelt https://devcenter.heroku.com/articles/getting-started-with-ruby#set-up
安裝完之後,可以輸入heroku看一下有沒有安裝成功,有的話輸入heroku login
再來輸入heroku create
,會在heroku那邊開一個機器給你,基本上不用去對他做額外的設定
接著只要輸入git push heroku master
就行了
如果你跟我一樣是開了一個叫做heroku的branch來做,那你可以指定branch:
git push heroku BRANCH\_NAME:master
,像這裡就是git push heroku heroku:master
到這裡如果有錯誤的話可以看heroku logs
想要重新命名的話可以執行heroku apps:rename new-name
我們不需要去記住網址,只要執行heroku open
就可以了
第一次開都會很慢,不用擔心,通常都是因為heroku的關係,畢竟免費的嘛XD
之後還是會寫一篇用chef配合aws ec2的部署,其實設定完之後也不會比git push heroku難多少,而且還更快更有彈性了!
參考資料:
https://devcenter.heroku.com/articles/getting-started-with-ruby#introduction