0

我正在尝试完全启动我的 Rails 应用程序,作为传递给启动实例 EC2 API 的用户数据脚本的一部分。该脚本设置正确的密钥,从我的 git 存储库下载应用程序,然后它应该运行一些初始化脚本,从以下内容开始:

bundle install

这应该安装所有缺少的宝石。但是,它失败了。其他命令工作得很好。

最初的失败是它找不到 bundle 命令,我通过手动设置环境变量来解决这个问题,但 Ruby 仍然无法找到 bundler gem。

我的问题是,当我 ssh(一旦用户数据脚本失败)到启动的实例时,捆绑器工作没有问题。这使我无法调试原始问题。

在 ec2 中执行用户数据的凭据是什么?这可能是问题吗?为什么不能从 bash 脚本调用 bundler 有什么特殊原因吗?

4

1 回答 1

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
于 2012-09-07T22:39:37.020 回答