-1

Amazonサーバーのデプロイ時にスクリプトを自動的に実行したい。ただし、ログに次のエラーが表示され続けます。

/root/start.sh: /usr/bin/bundle: /usr/bin/ruby: bad interpreter: No such file or directory

開始スクリプトをマッサージしようとしましたが、まだ解決策が見つかりません。godファイルを手動でロードできますが、マシンを起動すると、次のエラーが発生します。スクリプトの実行時にバンドラー/ルビーが検出されるように設定するにはどうすればよいですか?

which ruby=>/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby

これは自動実行することになっている私のスクリプトです(start.sh)

cat /dev/null > /root/log
echo "Starting environment for $(whoami) at $(date)" >> /root/log

export RAILS_ENV=production
export RAILS_ROOT=/root/Rails3/www_rails
export QUEUE_NAME=place_matching

export HOME=/root
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

cd /root/Rails3/www_rails
RAILS_ENV=production bundle exec god -c /root/Rails3/www_rails/god/resque_generic.god >> /root/log 2>&1
echo "Environment running at $(date)" >> /root/log
4

1 に答える 1

1

RVM は問題のドキュメントを提供しますhttps://rvm.io/integration/god/

さらに、次のスクリプトを試すことができます。

cat /dev/null > /root/log
echo "Starting environment for $(whoami) at $(date)" >> /root/log

export RAILS_ENV=production
export RAILS_ROOT=/root/Rails3/www_rails
export QUEUE_NAME=place_matching

export HOME=/root

"$HOME/.rvm/bin/rvm" in $RAILS_ROOT do bundle exec god -c $RAILS_ROOT/god/resque_generic.god >> /root/log 2>&1
echo "Environment running at $(date)" >> /root/log

これは、基本的に次のように書き留めることができる rvm の新しい表記法です。

rvm in /path/to/project do <command> ...

そして、あなたがやろうとしていたことと同等です。

もう1つ重要なことは、これをRVMを所有しているユーザーとは別のユーザーとして実行している場合、プロジェクト.rvmrcはその新しいユーザーに対しても信頼されている必要があるということです。または、信頼を必要としない新しいプロジェクト ファイルの 1 つを使用することもできます。

  • .ruby-version=>1.9.3@project
  • Gemfile=> #ruby=1.9.3@project/ruby="1.9.3"
  • .versions.conf=>ruby=1.9.3@project

2 番目の形式もバンドラーの検証を行い、パッチレベルも gemset 名も許可しないことに注意してください。

于 2012-12-19T18:51:59.177 に答える