ステージングと本番用に異なるgemsetを使用するようにアプリを構成することを考えています。私の思考プロセスは、環境を別々のgemsetに分割することで、gem / ruby / railsを更新する必要がある場合に、より自由に使えるようになるというものです。その変更を加えて、本番アプリ/ジェムセットを邪魔することなく、ステージングですべてをテストすることができます。
これを実現するために、サーバー上に2つのファイルがあります。1つは各環境の共有ディレクトリにあり、rvmrcという名前です。これにはrvm use ree-1.8.7-2012.02@appname-production --create
、本番rvm use ree-1.8.7-2012.02@appname-staging --create
用とステージング用が含まれます。
shared/rvmrc
対応するファイルを次のようにアプリにリンクするタスクをデプロイスクリプトに含めます.rvmrc
。
namespace :deploy do
task :rvmrc do
run "rm #{latest_release}/.rvmrc; ln -s #{shared_path}/rvmrc #{latest_release}/.rvmrc"
end
end
before "bundle:install", "deploy:rvmrc"
これは実際には良い考えですか、それとも私は物事を複雑にしすぎていますか?