0

CapistranoはRailsアプリケーションをデプロイするときに、毎回再エクスポートされないファイルを保存するためにshared/ディレクトリを作成します。私のアプリケーションでは、shared/ディレクトリにいくつかのものがあります(アプリケーションツリーではなく、あまり変更されていません)が、の場合はに変更されています。Capistrano:共有のファイルのバージョン管理/

これらのファイルを管理しているリポジトリとは別に、リポジトリから隔離しておくことをお勧めします。

答えて

3

/sharedディレクトリは実際にバージョン管理されていないデータ用です。たとえば、すべてのリリースですべてのgemを再インストールする必要がないように、バンドルされた宝石を保管することができます。また、ログをそこに保存して、展開するたびに上書きされることもありません。そこにpidファイルを格納することで、デプロイ中に重要なプロセスのプロセスIDを失わないようにすることができます。ユーザー生成データまたは部分的に処理されたデータを保存して、リリース中に削除されないようにすることもできます。ファイルがバージョン管理され、変更の可能性がある場合は、残りのファイルと共有ディレクトリの外に保管することをお勧めします。

つまり、データベース構成ファイルなど、共有ディレクトリ内のデータを事前に設定するためのデプロイスクリプトを作成することもできます。これらのスクリプトは、各デプロイ時に実行され、完全にカスタマイズすることができます。たとえば、データベース設定スクリプトは、設定ファイルがまだ存在しない場合にのみ書き込むことができます。

+0

これは意味があります。変更する必要があるファイルをソースツリーに移動します。ありがとう! – jrdioko

0

共有ディレクトリの別の一般的な使用方法は、構成ファイルです。構成ファイルのバージョン管理とソース管理は非常に良いアイデアですが、システム構成管理ツールで管理する必要があります。私の環境では、私はCapistranoによるコードリリースとPuppetによるシステム構成を管理します。そうすれば、設定ファイルに対するソース管理はまだありますが、コード展開プロセスとは区別されます。次に、コード展開プロセスはシステム構成とは独立して行われます。

関連する問題