我是Capistrano的新手,我想知道最好的方法是为我的项目管理Capistrano配置。

具体而言,config/deploy.rb与我的项目的源代码管理应位于何处?是否应在没有特定配置信息的情况下存储文件模板?还是应该将此配置放在团队之间共享的自己的仓库中?

最佳答案

当我开始越来越多地使用Capistrano时,我也对此感到疑惑。我认为我们大多数人都同意,将运行时配置信息与功能代码分开来进行跟踪是正确的吗?因此,关于部署配置,难道不是一回事吗?

我想您可以将./deploy/文件夹设为SCM子模块。您可以执行一个rake任务,将Capfile生成到您的工作副本中,这样就可以将最终的密码和其他内容保留在应用程序之外...甚至可能有一个 gem 。

但是我选择了另一种方法:

我有大约十种不同的应用程序,其中大多数Capistrano变量可以遵循set(:deploy_to) {"#{base_dir}/#{environment}/#{application}"}之类的模式,并且同样适用于源代码存储库路径。

我从单个应用程序中提取了有关部署的所有知识,而是将其放在一个单独的通用“部署”项目中。现在,我可以检查该项目并继续:

cap [some application] [environment] [deploy task]

我更喜欢这种模式/关注点分离,而不是到处都是Capfile。

关于capistrano - Capistrano配置管理的良好做法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4359333/

10-13 06:34