好吧,在你投否决票之前,听我说完。。。在线有很多关于通过Capistrano部署cakeHP/Wordpress/Drupal/Symfony的演练,项目自己的文档也很好,但没有太多关于Capistrano默认情况下实际做了什么的报道。具体来说,对文件夹/timestamp
、/most-recent-timestamp
到/current
执行git签出,webroot以前已符号链接到/current
。
我之所以提出这个问题,是因为出于一些遗留问题,我们有一个非标准的、被黑客入侵的capistrano部署过程,我想让我们与默认行为保持一致。为了做到这一点,我想了解capistrano的默认行为到底是。
cp -Ra /home/username/deploy/shared/./ /home/username/deploy/releases/20121026170156/
:这个命令需要很长时间才能完成,我没有看到/shared
的任何文档被这样使用:/shared
扮演的典型角色是什么?
虽然可能只是答案的开始,但了解任何FOSS项目的最佳方法之一是通过源代码。
来自PHP世界的您可能不熟悉Ruby Gem是如何组成的。通过在gem的/bin
目录中存在文件,使gem可用于系统路径[作为可执行文件]。Capistrano的就在这里——从这里你可以看到调用cap production deploy
的过程从哪里开始。
require 'capistrano/cli'
Capistrano::CLI.execute
在这种情况下,它加载CLI库,然后调用其中的命令。从那里开始追踪你需要的东西。