ããã¾ã§è²ã 㨠Ruby ã Azure Web ãµã¤ãã§åããæ¹æ³ãèãã¦ãã¾ãããããã£ã¨æ±ºå®çã¨ããæãã®æ¹æ³ãæãã¤ããã®ã§ç´¹ä»ãã¾ãããã®åã« Kudu ã®ãããã¤å¨ãã®è©±ãç°¡åã«ã
Kudu 㯠Git ãããããã¤ããéã«ãæåãã«ã¹ã¿ãã¤ãºããããã®ä»çµã¿ãæã£ã¦ãã¾ãã
Customizing deployments · projectkudu/kudu Wiki · GitHub
Custom Deployment Script · projectkudu/kudu Wiki · GitHub
ç°¡åã«èª¬æãã㨠.deployment ã¨ãããã¡ã¤ã«ããªãã¸ããªã®ã«ã¼ãã«ç½®ãã¦ããã¨ããã®ä¸ã«æ¸ããã¦ããã³ãã³ãããããã¤ã®ã¿ã¤ãã³ã°ã§å®è¡ããã¨ããä»çµã¿ã§ãã
Git ãªã©ã使ã£ã¦ãããã¤ããå ´åã«ã¯ãKudu ãããã©ã«ãã®ã¹ã¯ãªãããå®è¡ã MSBuild ã ã£ãã KuduSync ã使ã£ã¦ãwwwroot 以ä¸ã«é ç½®ãã¦ããã¾ãããªã®ã§ããã®ã¹ã¯ãªãããããã¯ããã°ãRuby ã©ã³ã¿ã¤ã ã®ã¤ã³ã¹ãã¼ã«ãä¸è¶³ãã¦ãã gem ã®ã¤ã³ã¹ãã¼ã«ãèªååã§ããã®ã§ã¯ãªããã¨èãã¦ãä½æããã®ã以ä¸ã®ãªãã¸ããªã«ããã¹ã¯ãªããã§ãã
shibayan/AzureRubyDeployment · GitHub
ã¡ã¤ã³ã¨ãªãã®ã¯ deploy.sh ã§ãå é¨ã§ã¯æå®ããã¦ãããã¼ã¸ã§ã³ã® Ruby ã Bundler ãã¤ã³ã¹ãã¼ã«ããã¦ããªãå ´åã«ã¯ã¤ã³ã¹ãã¼ã«ãè¡ããGemfile ããªãã¸ããªã«ããã° bundle install ãå®è¡ãã¦ããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã«ããããã«ãªã£ã¦ãã¾ãã
ãã ãã æ¸ãã®ã¯ããã¦ãããããå®éã«è©¦ãã¦ãããã¨ã«ãã¾ãã
Ruby on Rails ã¢ããªã±ã¼ã·ã§ã³ãä½æ
ã¾ãã¯é©å½ã« rails ã³ãã³ãã使ã£ã¦ãã³ãã¬ã¼ããä½æãã¾ãã
ãã以ä¸ä¸èº«ã¯æ¸ãããã¨ããããããã©ã«ãã®ã¾ã¾ã§åãã®ã確èªãã¦ããããã¨æãã¾ãã
.deployment / deploy.sh / startup.bat / Web.config ã追å
shibayan/AzureRubyDeployment · GitHub ãããã¡ã¤ã«ã zip ã§ãã¦ã³ãã¼ãããã git clone ããããã¦ããã¼ã«ã«ã«æã£ã¦ãã¾ãã
å¿ è¦ãªãã¡ã¤ã«ã¯ä»¥ä¸ã® 4 ã¤ã«ãªãã¾ãã
- .deployment
- deploy.sh
- startup.bat
- Web.config
å®éã«ãããã¤ã§ä½¿ã£ã¦ããã®ã¯ .deployment 㨠deploy.sh ã§ãããstartup.bat 㨠Web.config 㯠Azure Web ãµã¤ãä¸ã§åããããã«å¿ è¦ã«ãªãã®ã§ãä¸ç·ã«ã³ãã¼ãã¦ããã¾ãã
ãã®ä¸ã§ã deploy.sh 㨠Web.config ã«ã¯ä½¿ç¨ãã Ruby ã®ãã¼ã¸ã§ã³ãå®ç¾©ãã¦ããé¨åãããã®ã§ãé©å®ä¿®æ£ãè¡ãã¾ããä»åã¯ä¸å ·åã®å½±é¿ãé¿ããããã« 1.9.3 ã«ãã¦ããã¾ãã
RUBY_VERSION=1.9.3 RUBY_HOME="$DEPLOYMENT_TARGET/bin/ruby/$RUBY_VERSION"
<httpPlatform processPath="D:\home\site\wwwroot\startup.bat" arguments="" startupTimeLimit="60" startupRetryCount="5"> <environmentVariables> <environmentVariable name="RUBY_VERSION" value="1.9.3" /> </environmentVariables> </httpPlatform>
ããã§ãããã¤ã®ã¿ã¤ãã³ã°ã§ Ruby 1.9.3 ãã¤ã³ã¹ãã¼ã«ãããããã«ãªãã¾ã.
Gemfile ã«è¿½è¨
ãã®ã¾ã¾ãããã¤ããã¨ãµã¼ãã¼ãå ¥ããªãã®ã§ãWindows ã§ã使ãã thin ã使ããã¨ã«ãã¾ãã
gem 'tzinfo-data' gem 'thin'
Gemfile ã«è¿½è¨ãã¦ããã°ããããã¤ããã¿ã¤ãã³ã°ã§èªåçã«ã¤ã³ã¹ãã¼ã«ããã¾ãããã㦠tzinfo-data ãä½æ ãä¸ç·ã«å ¥ããªãã®ã§è¿½å ãã¦ããã¾ãã
Azure Web ãµã¤ãä¸ã® Git ãæå¹å
Azure Web ãµã¤ãã¸ã¯ Git ã使ã£ã¦ãããã¤ããã®ã§ã管çãã¼ã¿ã«ãã Git ãæå¹åãã¦ããã¾ãã
ä½æãçµãã㨠git remote add ã¨ãã£ãã³ãã³ãä¾ã表示ãããã®ã§ãéããã«ããã¦ããã¾ãã
ãªãã¸ããªãä½æããAzure Web ãµã¤ãä¸ã® Git ã¸ããã·ã¥
git init ã使ã£ã¦ãªãã¸ããªãä½æããé©å½ã«ã¡ãã»ã¼ã¸ãå ¥ãã¦ã³ããããã¾ãã
ããã¾ã§ã¯ããã§ããã
ãã®å¾ã¯ git remote add ã³ãã³ãã使ã£ã¦ Azure Web ãµã¤ãã®ãªãã¸ããªã azure ã¨ããååã§è¿½å ããgit push azure master ãå®è¡ãã¾ãã*1
ããã¨ãªã¢ã¼ãã§ãããã¤ã¹ã¯ãªãããå®è¡ãã㦠Ruby ã©ã³ã¿ã¤ã ã®ã¤ã³ã¹ãã¼ã«ãè¡ããã¾ãã
ã¡ãªã¿ã«ç®¡çãã¼ã¿ã«ããããããã¤ã¹ã¯ãªãããå®è¡ä¸ã§ãããã¨ã確èªåºæ¥ã¾ãã
åå㯠Ruby ã©ã³ã¿ã¤ã ã¨åæã« DevKit ã®ã¤ã³ã¹ãã¼ã«ãè¡ãã®ã§å°ãæéããããã¾ãã
ãã®å¾ã«ã¯ Bundler ãã¤ã³ã¹ãã¼ã«ããããã« bundle install ãå®è¡ããã®ã§ããã«æéããããã¾ãã
ãã°ããå¾ ã¤ã¨ãããã¤ãå®äºãã¾ããæéã¯ãããã¾ãããããã¯ååã ããªã®ã§ææ ¢ãã¦ãã ãããbundle install ã®å®è¡ä¸ã«ã¨ã©ã¼ã¨ãªã£ãå ´åã«ã¯ãkuduExec ã使ã£ã¦ç´æ¥ gem ãå©ãå¿ è¦ãããã¾ãã
ç¹ã«ãã¤ãã£ããªã©ã¤ãã©ãªãå«ã gem ã®æã«åé¡ã«ãªããããæ°ããã¾ããä¾ãã° json ãä»åã¤ã³ã¹ãã¼ã«ä¸ã«ã¨ã©ã¼ã¨ãªã£ã¦ãã¾ãããããã¤èªä½ã失æãã¾ããã
ä»æ¹ãªãã®ã§ kuduExec ã使ã£ã¦ãç´æ¥ gem install ãå®è¡ãã¦ã¤ã³ã¹ãã¼ã«ãè¡ãã¾ãã*2
ãã®å¾ã管çãã¼ã¿ã«ãã失æãããããã¤ãé¸ãã§åãããã¤ãè¡ãã°ãç¶ãããå§ã¾ãã¾ãã
ä»ã«ã Ruby 2.1.5 ã使ã£ãå ´åã«ã¯ eventmachine ã§å®è¡æã¨ã©ã¼ã«ãªã£ãããã¾ãããããä¿®æ£ããããã«ãæå㧠gem ãå©ãã¦ã¤ã³ã¹ãã¼ã«ãã¾ãã
gem install eventmachine --platform=ruby
ABI ãå¤ãã£ãå½±é¿ã§ãRuby 2.1.x ã§ã¯ eventmachine ã®ããªã³ã³ãã¤ã«çã使ãã¨ä¸å ·åãåºãããã§ã.
httpPlatformHandler + thin ã§åä½ã確èª
startup.bat 㨠Web.config 㧠httpPlatformHandler 㨠thin ã使ã£ã¦åããããã®è¨å®ãè¡ã£ã¦ããã®ã§ããããã¤ãæ£å¸¸ã«å®äºããå¾ã§ããã°ããã®ã¾ã¾ãã¼ã¸ã表示ã§ããã¯ãã§ãã
ã¨ãããã Ruby on Rails ã®åºæ¬çãªç»é¢ã¾ã§ç¢ºèªåºæ¥ã¾ããã
ã«ã¹ã¿ã ãããã¤ã¹ã¯ãªããã使ããã¨ã§ãããã¾ã§ã¿ããã« Kudu ã®ã³ã³ã½ã¼ã«ãç«ã¡ä¸ãã¦ç°å¢ãç¨æããå¿ è¦ããªãã®ã§ãå¤å°ã¯å®ç¨çã«ãªã£ãã®ã§ã¯ãªããã¨æãã¾ãã