2012-05-03 187 views
3

我們使用虛擬主機dotCloud運行我們的一些應用程序。 dotCloud直接從git倉庫部署應用程序,並從該倉庫讀取名爲dotcloud.yml的配置文件來配置和運行堆棧。不同版本的相同配置文件在不同分支

我們有兩個分支(一個生產,一個分段),它們是同一個回購的一部分,並且這些分支推動分離dotCloud實例。在dotcloud.yml文件中運行這些實例中的每一個都有一點小小的區別。

管理這個dotcloud.yml文件的最佳方法是什麼?目前,我們只是確保我們確保每個分支上的dotcloud.yml都是正確的,但是當我們將更改從分段合併到主控時,它會不斷被覆蓋。

+0

你可以在生產和分段分支之間的'dotcloud.yml'中描述這個「細微差別」嗎? – jpetazzo

+0

我猜環境變量等。 – nilskp

回答

1

,你可以:

  • 版本dotcloud.yml.template
  • 版本dotcloud.yml.value.prod,併爲每個環境的相關值dotcloud.yml.value.staging
  • 版本一個污跡腳本,負責構建正確的dotcloud.ym l文件(根據dotCloud實例不再版本化)。

你會宣佈塗抹腳本是一個(也是版本)一個filter content driver.gitattribute file

filter driver

在任何git的結帳,塗抹腳本將被調用,如果它承認dotcloud.yml.template內容,將構建正確的dotcloud.yml文件。

0

,你可以:

  • 添加dotcloud.yml.gitignore,有臨時和生產(如dotcloud.yml.stagingdotcloud.yml.production)兩個獨立的文件,都出現在你的git倉庫,建立一個符號鏈接dotcloud.yml → dotcloud.yml.production,並與dotcloud push --rsync推( --rsync標誌將覆蓋推送機制檢測,並且rsync機制將會啓動,而不是git機制);
  • 使用相同的dotcloud.yml文件,但依賴於不同的機制(例如dotcloud varpostinstall腳本)在生產和分段行爲之間切換。
+0

請注意,新的(0.9)dotcloud cli工具沒有'dotcloud push'的'--all'標誌,所以這個回答將不起作用。 –

+0

你是對的;它已被更改爲--rsync。我更新了我的答案。謝謝! – jpetazzo

相關問題