2012-05-03 16 views
3

仮想ホストであるdotCloudを使用して、いくつかのアプリケーションを実行しています。 dotCloudはgit repoから直接アプリをデプロイし、そのレポからdotcloud.ymlという設定ファイルを読み込んでスタックを設定して実行します。異なるブランチにある同じ設定ファイルの異なるバージョン

同じrepoの一部である2つのブランチ(1つのプロダクションと1つのステージング)があり、これらがdotCloudインスタンスを分離するためにプッシュします。これらの各インスタンスを実行するには、dotcloud.ymlファイルにわずかな違いがあります。

このdotcloud.ymlファイルを管理する最適な方法は何ですか?現時点では、各ブランチでdotcloud.ymlが正しいことを確認していますが、ステージングからマスターへの変更をマージすると常に上書きされます。

+0

プロダクションブランチとステージングブランチの間の 'dotcloud.yml'にこの「マイナーな相違」を記述できますか? – jpetazzo

+0

私は環境変数などを推測しています。 – nilskp

答えて

1

あなたは可能性:

  • バージョンdotcloud.yml.template
  • バージョン環境ごとに適切な値を持つdotcloud.yml.value.proddotcloud.yml.value.staging
  • バージョンdotCloudインスタンスに応じて、dotcloud.ym lファイル(これ以上バージョン管理されない)を構築するための汚れスクリプト。

あなたは(もバージョン管理)でfilter content driver.gitattribute fileように、その汚れスクリプトを宣言します:任意のGitのチェックアウト時に

filter driver

を、それがdotcloud.yml.templateを認識した場合、汚れスクリプトは、呼び出されるとされますコンテンツは、右dotcloud.ymlファイルを構築します。

0

あなたは可能性:

  • .gitignoredotcloud.ymlを追加し、ステージングとプロダクション(例えばdotcloud.yml.stagingdotcloud.yml.production)用の2つの別々のファイル、あなたのgitリポジトリに存在し、両方の、セットアップシンボリックリンクdotcloud.yml → dotcloud.yml.productionを持って、そして(dotcloud push --rsyncを押します--rsyncフラグはプッシュメカニズムの検出を無効にし、gitメカニズムの代わりにrsyncメカニズムが起動します)。
  • 同じdotcloud.ymlファイルを使用しますが、プロダクションとステージングの動作を切り替えるには、別のメカニズム(dotcloud varまたはpostinstallスクリプト)に従ってください。
+0

新しい(0.9)dotcloud cliツールは 'dotcloud push 'の' --all'フラグを持たないので、この答えはうまくいかないことに注意してください。 –

+0

あなたは正しいです。それは--rsyncに変更されました。私は自分の答えを更新しました。ありがとうございました! – jpetazzo

関連する問題