2012-03-29 25 views
0

我試圖完全啓動我的Rails應用程序,作爲傳遞到啓動實例EC2 API的用戶數據腳本的一部分。該腳本設置適當的鍵,下載從我的混帳回購協議的應用程序,那麼它應該運行一些初始化腳本,先從:在AWS ec2上的用戶數據腳本中執行rake任務

bundle install 

應該安裝所有丟失的寶石。但是,它失敗了。其他命令工作得很好。

最初的失敗是它無法找到捆綁命令,我已經通過手動設置環境變量來解決這個問題,但Ruby仍然無法找到捆綁器gem。

這裏我的問題是,當我ssh(一旦用戶數據腳本失敗)到啓動的實例,bundler工作沒有問題。這使我無法調試原來的問題。

在哪個憑證下是在ec2中執行的用戶數據?這可能是問題嗎?有沒有特別的原因,爲什麼不能從bash腳本調用bundler?

回答

3

您是否將目錄更改爲rails應用程序?

你也可以嘗試調用bundle。如果你還沒有找到解決方案,我會嘗試這樣的。

#Pipe stdout and stderr to a log file. 
exec &> /home/ubuntu/startup.log 

DIR=/home/ubuntu/[rails app] 

echo "[START UP] change directory: " $DIR 
cd $DIR 

echo "[START UP] Update code" 
sudo -u ubuntu git pull origin master 

echo "[START UP] Bundling latest codebase" 
bundle 
+0

不完全是一個解決方案,但導致它:) – zmilojko 2012-11-24 10:12:12

+0

@zmilojko所以是什麼解決方案? – Sixty4Bit 2014-10-10 19:52:14

相關問題