【问题标题】:Capistrano deployment without git command on shared host?在共享主机上没有 git 命令的 Capistrano 部署?
【发布时间】:2011-07-16 15:53:54
【问题描述】:
  • 开发人员 A - 本地存储库 --> 拉/推 ---> github
  • 开发人员 B - 本地存储库 --> 拉/推 ---> github
  • Capistrano 将保留在我们开发人员的计算机上,但是我们将定义 :repository 以指向我们的 GitHub 项目: set :repository, "git@github.com:myuser/myproject.git" # My clone url
  • 必须允许开发人员 A 或开发人员 B 将提交的文件部署到生产机器。

我不确定这里的第三点,这可能吗?

ctcherry 在这里On this workflow, does git command needs to be installed on the production server? 告诉我:

1) 默认情况下,Capistrano 将部署 从存储库,所以文件 部署将来自 签入 github 的代码。你 可以配置 Capistrano 来部署它 来自开发者本地机器 使用不同的“部署 战略”见这里: http://rubydoc.info/gems/capistrano/2.5.19/Capistrano/Deploy/Strategy/Copy

但我仍然有疑问。

如果我们使用这种方法,这里的确切工作流程会是什么?

  • 从开发者机器 A - 我们使用 Capistrano 从 github 获取提交的文件。
  • 从同一台开发人员机器 A - 我们通过 SSH 将这些文件部署到共享主机中,这些文件将被放置在正确的位置?

是吗?

更新: 请注意,我从未使用过 Git 或 Capistrano Deploy,但我正在尽我所能尝试了解这一切是如何工作的,以便为我的基于 ZF 的应用程序提供良好的工作流开发过程。

所以我的问题是非常基本的。

如果我必须提供任何其他信息,请告诉我。

非常感谢。

【问题讨论】:

  • Tim 就在下面,用 zip/unzip 解压。抱歉,我之前没有在其他帖子中看到您的消息。
  • @ctcherry - 哦,拜托。不用担心。你已经 5 次开始帮助我了。 :) 谢谢你们俩!真的。 :)

标签: git zend-framework capistrano shared-hosting


【解决方案1】:

工作流程是一样的。发生的情况是,每当任何开发人员尝试部署项目时,Capistrano 都会首先将项目的新副本检出到他们机器上的临时目录中,将其压缩,然后将其上传到远程服务器。然后在远程服务器上解压缩存档,其他一切正常。

请注意,这种方法比“正常”部署要慢得多,尤其是在您的 Internet 连接速度较慢的情况下,因为每次都会复制整个项目。

【讨论】:

  • 我的网络连接正常。所有这些问题的原因只是:我是否应该离开不允许 git 命令并以这种方式添加的共享主机公司,或者这可能会变得一团糟,我真的应该以“正确的方式”这样做吗?假设我的共享主机公司允许我安装非常具体的 git 命令(不是 git 命令本身),我的问题是:在这种情况下 capistrano 将使用哪些特定的 git 命令或命令? (如果以上没有任何意义,请告诉我为什么以及为什么)。非常感谢。我真的很抱歉再次占用您的时间......问候。
  • 如果您的主机不允许安装 git,这种方法绝对没问题。部署所花费的时间是唯一的缺点,所以如果这不是问题,那么我会坚持下去。
  • @MEM 也可以使用自定义部署策略,例如使用 Rsync 使这些部署更快,这是有人做了这样的事情:github.com/vigetlabs/capistrano_rsync_with_remote_cache/tree 注意:我没有t 测试它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多