2012-10-27 110 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)。 –