0

起動インスタンスEC2APIに渡されるユーザーデータスクリプトの一部として、Railsアプリケーションを完全に起動しようとしています。スクリプトは適切なキーを設定し、gitリポジトリからアプリをダウンロードします。次に、次のコマンドで始まる初期化スクリプトを実行する必要があります。

bundle install

不足しているすべてのgemをインストールする必要があります。ただし、失敗します。他のコマンドは問題なく機能します。

元々の失敗は、bundleコマンドが見つからなかったことでした。環境変数を手動で設定することで修正しましたが、それでもRubyはbundlegemを見つけることができませんでした。

ここでの私の問題は、起動されたインスタンスにssh(ユーザーデータスクリプトが失敗した後)すると、バンドラーが問題なく動作することです。これでは、元の問題をデバッグする方法がありません。

ec2で実行されているユーザーデータはどのクレデンシャルの下にありますか?これが問題になる可能性がありますか?bandrをbashスクリプトから呼び出せない特別な理由はありますか?

4

1 に答える 1

3

ディレクトリをRailsアプリに変更しましたか?

バンドルを呼び出すだけでもかまいません。まだ解決策が見つからない場合は、次のような方法を試してみます。

#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 に答える