December 23, 2013

Rocketeerで1サーバNステージに対応する

先に、Rocketeerの基本的な使い方については、以下を御覧ください。
http://madroom-project.blogspot.jp/2013/12/fac20131221.html
FuelPHPでの使用例ですが、一般的なPHPプロジェクトで、ほぼそのまま使えると思います。

今回の記事は、あまり良くない気もしますが、例えば1つのサーバにstagingとproductionの2つの環境(以下、ステージ)を持つ場合に、Rocketeerでどう対応するか。です。

まず rocketeer/stages.php を以下のような感じで修正します。
// Adding entries to this array will split the remote folder in stages
// Like /var/www/yourapp/staging and /var/www/yourapp/production
'stages' => array('staging', 'production'),

// The default stage to execute tasks on when --stage is not provided
'default' => 'staging',
これで、Rocketeerを今まで通りに実行すれば、"staging"がデフォルトステージとして扱われます。

ディレクトリ構成で言うと
/[root_directory]/[application_name]/releases/

/[root_directory]/[application_name]/staging/releases/
になりました。

Rocketeer実行時に "-S=production"(または"--stage=production") とすると
/[root_directory]/[application_name]/production/releases/
になりました。

また、rocketeer/config.php の "on.stages" で、ステージ毎の設定ができるみたいです。そうなると "on.connections" はコネクション毎の設定なんだと思います。(まだ試していません。)

No comments:

Post a Comment