Ruby on Rails3ã§ä½æããã¢ããªãHerokuä¸ã§thinãå©ç¨ãã¦åä½ãããããã®ã¾ã¨ãã§ã。
ç°å¢ã¯ruby-1.9.3-p0, rails3.2.2, postgres, Herokuã§ã。
é£æåº¦★★★★☆
thinã«å¤æ´ããã»ããè¯ãçç±
Herokuä¸ã®railsã¢ããªã¯、ããã©ã«ãã ã¨Webrickãåãã¦ãã¾ã。
Webrickã¯ããã©ã«ãã§ä½¿ãããWEBãµã¼ãã¼ã§ãã、ããã©ã¼ãã³ã¹ãããªãæªãã§ã。
Herokuã§ãå®éç¨ã§ã¯thinã使ãããã«æ¨å¥¨ãã¦ãã¾ã。
thinã¯ã³ã³ãã¯ãã§WEBrickãããéãæè¡çã«ãæ¯ãã¦ãã¦、æ®éã®WEBãµã¤ãã§ããã°ååãªæ§è½ããã£ã¦ãã¾ã。
ããªã¼(ç¡æ)ã§å¤æ´ã§ããã®?
ç¾å¨(2012/8æ)確èªããéãã¯ç¡æã§å¤æ´ã§ãã¾ã。add-onã¨ç°ãªãã¯ã¬ã¸ããã«ã¼ãã®ç»é²ããã¦ããªãã¦ã大ä¸å¤«ã§ã。
å©ç¨ãã¦ããWEBãµã¼ãã¼ã調ã¹ã
Herokuä¸ã®railsã¢ããªã¯、ããã©ã«ãã ã¨Webrickãåä½ãã¦ããã¯ãã§ã。
herokuã«ãã°ã¤ã³ãã¦ã³ãã³ãã§ç¢ºèªãã¦ã¿ã¾ããã。
heroku ps
以ä¸ãçµæã§ã。
Process State Command ------- ---------- --------------------------------- web.1 up for 45m bundle exec rails server -p $PORT
ä¸è¨è¡¨ç¤ºã®「bundle exec rails server -p $PORT」ã®å ´åã¯Webrickãåä½ãã¦ãããã¨ã示ãã¦ãã¾ã。
ã¢ããªã®Gemfileã«thinãè¨å®
ãã£ããthinãå°å ¥ãã¾ããã。ã¢ããªã®ãã©ã«ãã«ç§»åãã¾ã。
vi Gemfile gem 'thin' bundle install
installã«æåããã、ãã¼ã«ã«ã§thinãµã¼ãã¼ã®åä½ã確èªããã¨è¯ãã§ããã。
ãã¼ã«ã«ã§åããå ´åã¯rails server thinã§thinãèµ·åãããã¨ãã§ãã¾ã。
Procfile(ãããã¯ãã¡ã¤ã«)ã夿´ãã
Herokuã§Webrickãthinã«å¤æ´ããã«ã¯、Procfileã夿´ããå¿
è¦ãããã¾ã。
Procfileã«ã¯、ã¢ããªã±ã¼ã·ã§ã³ã§åããããã»ã¹ã¿ã¤ãã®ãªã¹ããè¨è¿°ãã¾ã。
ããã»ã¹ã¿ã¤ãã«ã¯、web, worker, urgentworker, clockçãããã¾ã。
å
ã»ã©ã®Webrickã®ããã»ã¹ã¯webããã»ã¹ã«ãªãã¾ã。
Process State Command ------- ---------- --------------------------------- web.1 up for 45m bundle exec rails server -p $PORT
foremanãå°å ¥
Procfileã®å¤æ´ã¯、foremanã¨ããgemãå©ç¨ãã¦ç¢ºèªãã¾ã。
ãã®æ
å ±ã¯ããªãå°ãªãã£ãã®ã§è¦å´ãã¾ãã(Heroku使ã£ã¦ãã人ã¯Webrickã®ã¾ã¾ãªã®ããª?)
ããã¯、Herokuã®David Dollaræ°ã使ããgemã§、Herokuã§ãæ¡ç¨ããã¦ãã¾ã。
ãã®foremanã¯ä¾åããããã¯ã°ã©ã¦ã³ãããã»ã¹ãç°¡åã«ç®¡çã§ãã¾ã。
ããã§ã¯、ã¢ããªã«å°å
¥ãã¾ããã。
vi Gemfile gem 'foreman' bundle install
installã«æåãããProcfileã使ãã¾ã。
vi Procfile
以ä¸ã®è¡ã追å ãã¾ã。
web: bundle exec rails server thin -p $PORT -e $RACK_ENV
Procfileã宿ããã、å å®¹ãæ£å½ãã©ãããforeman checkã³ãã³ããå®è¡ãã¦ãã§ãã¯ãã¾ã。
foreman check valid procfile detected (web)
ä¸è¨ã®ã¡ãã»ã¼ã¸ãåºãã°æ£å¸¸ã§ã。$RACK_ENVãã»ãããããã¡ã¤ã«ã使ãã¾ã。
echo "RACK_ENV=development" >>.env
æºåå®äºã§ã。ããã»ã¹ãèµ·åãã¾ã。
foreman start 06:10:13 web.1 | started with pid 2027 06:11:50 web.1 | => Booting Thin 06:11:50 web.1 | => Rails 3.2.2 application starting in development on http://0.0.0.0:5000 06:11:50 web.1 | => Call with -d to detach 06:11:50 web.1 | => Ctrl-C to shutdown server 06:11:50 web.1 | >> Thin web server (v1.4.1 codename Chromeo) 06:11:50 web.1 | >> Maximum connections set to 1024 06:11:50 web.1 | >> Listening on 0.0.0.0:5000, CTRL+C to stop 06:11:50 web.1 | >> Stopping ... 06:11:50 web.1 | >> Stopping ... 06:11:50 web.1 | Exiting 06:11:50 web.1 | exited with code 0
OKã§ãã。ãã¼ã«ã«ã§ã¢ããªã®åãã確èªããå ´åã¯portã5000ã«ãã¦æ¥ç¶ãã¾ã。
ã³ããã
確èªãçµããã、ä¸è¨ã®å¤æ´ãgitã§ã³ããããã¾ã。
ãã®ã¨ã.envãã¡ã¤ã«ã¯gitã§è¨é²ããªãããã«ãã¾ã。
herokuæ´æ°
ãã¨ã¯ãã¤ãã¨åãgit push heroku masterã§herokuãæ´æ°ãã¾ã。
thinã§åä½ãã¦ãããã¨ã確èª
heroku ps Process State Command ------- ---------- ------------------------------------ web.1 up for 43s bundle exec rails server thin -p $..
Commandãbundle exec rails server thinã«ãªã£ã¦ãã¾ã。
thinã§ã¢ããªãåä½ãã¦ããã®ã確èªã§ãã¾ãã。
夿´å¾ã¯åãã確èªãã¦ã¿ãã¨è¯ãã§ããã。Webrickãããµã¯ãµã¯ã¨åãã¯ãã§ã。
ä»åã¯ã¡ãã£ã¨é·ããªãã¾ããã。ãç²ããã¾ã§ãã。
以ä¸ã§ã。
åèãµã¤ã
- Rubyã®httpãµã¼ãã¾ã¨ã 2012å¹´4æç(thin, Unicorn, Passenger, etc)
- Getting Started with Rails 3.x on Heroku
- Dyno調ã¹ã。ãããä»ã®éç。
- Introducing Foreman
- Foreman railscast
0 ä»¶ã®ã³ã¡ã³ã:
ã³ã¡ã³ããæç¨¿