2012-10-27 104 views
3

好吧,在你冷靜下來之前,聽我說...有很多的在線演示,通過Capistrano部署cakePHP/Wordpress/Drupal/Symfony和項目自己的文檔是相當不錯的,但是對Capistrano沒有太多的報道實際上默認爲。具體來說,做一個git結帳到文件夾/timestamp,/most-recent-timestamp/current,webroot以前已經鏈接到/current默認情況下,Capistrano如何工作?

我問這個問題是因爲我們有一個非標準的黑客capistrano部署過程有一些遺留原因,我想讓我們與默認行爲保持一致。爲了做到這一點,我想要什麼背景,恰恰capistrano的默認行爲實際上是

cp -Ra /home/username/deploy/shared/./ /home/username/deploy/releases/20121026170156/:此命令永遠需要完成,我沒有看到/shared anydocumentation被這樣使用:什麼是/shared發揮典型作用?

+0

你在問幾個問題,特別是關於'/ shared'的位是特定的,因此很難給出可以幫助你的答案。 –

回答

2

雖然可能只是答案的開始,但理解任何FOSS項目is via the source的最佳方法之一。你可能不熟悉Ruby Gem的組成。通過在珠寶的/bin目錄中存在文件,使寶石可用於系統路徑[作爲可執行文件]。 Capistrano's is here - 由此您可以看到從何處開始呼叫cap production deploy的過程。

require 'capistrano/cli' 
Capistrano::CLI.execute 

在這種情況下,它會加載CLI庫,然後調用其中的命令。從那裏開始追蹤你需要什麼。

+0

謝謝@NewAlexandria。我在哪裏可以找到CLI庫? – kayaker243

+2

[它位於'lib/capistrano /'dir](https://github.com/capistrano/capistrano/blob/master/lib/capistrano/cli.rb),然後還有一個* lib/capistrano/cli /'dir,它擁有幾個你會在'lib/capistrano/cli.rb'中看到的文件。你可能會發現看一個更簡單的寶石很容易,[這是我寫的這個](https://github.com/NewAlexandria/morpheus)。 –