9

Bundlerのドキュメントによると、Capistranoを介して展開するときに必要なすべてのバンドルをインストールするには、挿入するだけで済みます。

require 'bundler/capistrano' # siehe http://gembundler.com/deploying.html

彼のdeploy.rbで。次に、展開時に、Capistranoは呼び出します

  * executing "bundle install --gemfile .../releases/20110403085518/Gemfile \
    --path .../shared/bundle --deployment --quiet --without development test"

これは正常に機能します。

ただし、本番サーバーには、実際の本番サイトから分離されたステージングセットアップがあります。ここでは、(クローンおよびファイアウォールで保護された)本番データを使用して新しいアプリのリリースをテストします。そこで、テストと開発のgemをインストールする必要があります。

ここでcapistranoコマンドラインを指定するにはどうすればよいですか?使用できるパラメーターはありますか、それともBundlerを上書きするために独自のcapistranoタスクを設定する必要がありますか?

ありがとうございました!

4

3 に答える 3

19

さまざまなタスクを作成することで、確実にシンプルに保つことができます。

task :production do
  # These are default settings
  set :bundle_without, [:development, :test]
end

task :staging do
  set :bundle_without, [:test]
  # set :rails_env, 'staging'
end

ただし、コマンドラインオプションを使用する場合は、指定された値をオンに切り替えることができます。

cap deploy target=staging

また、deploy.rbファイル内で、オプション値を次のように使用できます。

if target == "staging"
  set :bundle_without, [:test]
  # do other stuff here
end

使用できるより「適切な」構成オブジェクトもあります。私はここでそれへの参照を見つけました:http://ryandaigle.com/articles/2007/6/22/using-command-line-parameters-w-rake-and-capistrano

于 2011-04-03T16:46:01.243 に答える
3

最もクリーンな方法は、これを使用してデプロイ環境ファイルにset:bundle_withoutを追加することだと思います。

https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension

于 2013-07-27T08:34:22.987 に答える
0

個別に確認する設定はありませんが、RAILS_ENV ='development'で確認できますか?

于 2011-04-03T17:58:18.363 に答える