是否可以将所有部署相关文件放在项目基目录之外

Is that possible to place all deploy related files outside of the project base directory

我的目录结构如下所示:

+deploy
 |
 | Capfile
 +- config/
    |
    +- deploy/
       |
       | production.rb
         ...
         ....
    deploy.rb


+frontend-app
 |
 +- My app structure.

我想让这个结构与 capistrano 一起工作,现在我的 Capfile 和相关的 capistrano 配置放在 /frontend-app 目录下。

如有任何帮助,我们将不胜感激。

更新: 我检查了 these and these 但我认为它没有提供精确的抽象。

无需更改您的项目结构。

Capistrano 在执行部署时实际上不会查看您的本地项目结构。相反,它使用 :repo_url 值将您项目的存储库克隆到服务器上,并在那里与您的项目一起工作。

换句话说,Capistrano 不关心你 运行 它在哪里;你甚至可以将你的 Capistrano 文件放在一个完全不同的 repo 中。重要的是您的 :repo_url 指向您希望部署的存储库。

所以不要担心 Capistrano 文件实际存在的位置。在你的情况下,你可以这样做:

cd deploy; cap production deploy

它应该可以正常工作。 :)