2012-03-29 63 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

相关问题