5

シンプルでありながら非常に役立つ可能性があることを行い、任意のリリースを指す live と呼ばれる別のシンボリックリンクを作成し、通常は先頭にある現在の状態のままにすると思いました。

20120519235508 
20120521004833 
20120521024312 <-- live
20120521025150 
20120521030449 <-- current 

次に、www.mysite.com をヒットするように構成しました

live/public 

と stage.mysite.com にヒットします

current/public

残念ながら、両方のホストが 2 つの異なるアプリではなく、同じアプリを実行しているようです。httpd.conf の設定が正しいことを確認し、再起動しました。ただし、変更はありません。どちらも同じアプリを実行しています。正確には、current/public によって参照されているアプリです。

設定が間違っているのか、何かを再起動する必要があるのか​​ 、それとも単に想像どおりに機能しないのかわかりません。乗用車を利用しています。

この構成は多くのプロジェクトで私にとって非常に役立つので、誰かがこの主題に光を当てることができますか?

4

1 に答える 1

12

リリース ディレクトリに別のシンボリック リンクを作成する代わりに、マルチステージ拡張機能を使用することをお勧めします。この拡張機能を使用すると、さまざまなステージを定義し、それらにカスタム構成を追加できます。そのため、ステージングと本番の両方に 1 つの展開ディレクトリを使用する代わりに、相互に別の展開ディレクトリを使用してください。

次の行を deploy.rb に追加します。

require "capistrano/ext/multistage"

set :stages, ["staging", "production"]
set :default_stage, "staging"

deploy.rb から deploy_to 変数を削除します。次に、ステージ名のファイルを持つ config 内に deploy ディレクトリを作成します。この場合: deploy/staging.rb と deploy/production.rb。staging.rb の内容:

set :rails_env, "staging"
set :deploy_to, "staging/capistrano"

同様に production.rb についても:

set :rails_env, "production"
set :deploy_to, "production/capistrano"

もちろん、deploy_to のパスを変更します。次に、staging.example.com を にstaging/capistrano/current/public、www.example.com を にポイントしproduction/capistrano/current/publicます。

ステージング デプロイ、executecap staging deployまたは simple cap deploy(ステージングは​​ deploy.rb でデフォルトに設定されていることを思い出してください) を実行し、本番環境cap production deployにデプロイします。

于 2012-05-21T09:21:45.037 に答える