1

我一直通过 SSH 通过手动登录和运行git pull origin master、运行迁移和预编译资产来部署我的应用程序。

现在我开始对 Capistrano 更感兴趣,所以我试了一下,我设置了一个配方,存储库指向 githubdeploy_to/home/myusername/apps/greatapp

服务器上的当前应用程序也已经与 Git 连接,所以我不知道为什么我必须再次在配方中指定 github url,但我运行cap deploy它是成功的。

更改不适用,所以出于好奇,我浏览到服务器上的 app 文件夹,发现 Capistrano 创建了文件夹sharedreleasescurrent. 后者包含应用程序,所以现在我有 2 个副本,一个在/home/myusername/apps/greatapp,另一个在/home/myusername/apps/greatapp/current.

  1. 这是应该的吗?我必须将用户上传的内容迁移到current旧应用程序并销毁?

  2. Capistrano 是否在我的本地主机上拉取 repo,然后通过 SSH 上传或pull在服务器上运行?换句话说,有人可以概述部署的工作原理吗?

  3. Capistrano 运行precompile:assets吗?

4

2 回答 2

0

/releases/ 用于以前的版本,以防你想做 cap:rollback。/current/ 正如您正确指出的那样,适用于您的应用程序的当前版本。/shared/ 用于您希望在部署之间保留的文件和文件夹,它们通常会符号链接到您的 /current/ 文件夹作为配方的一部分。

Capistrano 在 shell 中连接到您的服务器,然后在服务器上执行 git 命令。

于 2012-11-02T17:00:27.633 回答
0
  1. Capistrano 应该自动将任何内容public/system(存储的用户上传文件的 rails 约定)放入共享目录,并设置必要的符号链接。
  2. 如果您输入 github url,它实际上是从您的 github 存储库中获取的。阅读https://help.github.com/articles/deploying-with-capistrano了解更多信息。
  3. 默认情况下确实如此。
于 2012-11-03T05:22:49.157 回答