Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails为什么在使用git post接收钩子时使用capistrano?_Ruby On Rails_Git_Capistrano - Fatal编程技术网

Ruby on rails Rails为什么在使用git post接收钩子时使用capistrano?

Ruby on rails Rails为什么在使用git post接收钩子时使用capistrano?,ruby-on-rails,git,capistrano,Ruby On Rails,Git,Capistrano,我对Capistrano一点也不熟悉,我只是读了一些关于配置它的基本文章。但我的问题是,如果可以使用git post-receive钩子部署Rails应用程序文件,为什么还要使用Capistrano呢 卡皮斯特拉诺提供了什么钩子没有的 我在寻找不用FTP自动部署Rails应用程序的方法,遇到了git钩子和Capistrano 还是我遗漏了什么 谢谢 Git钩子允许您在给定操作上执行与Git存储库相关的脚本 Capistrano允许您管理生产部署 对“cap deploy”的单个调用将在目标计算机

我对Capistrano一点也不熟悉,我只是读了一些关于配置它的基本文章。但我的问题是,如果可以使用git post-receive钩子部署Rails应用程序文件,为什么还要使用Capistrano呢

卡皮斯特拉诺提供了什么钩子没有的

我在寻找不用FTP自动部署Rails应用程序的方法,遇到了git钩子和Capistrano

还是我遗漏了什么


谢谢

Git钩子允许您在给定操作上执行与Git存储库相关的脚本

Capistrano允许您管理生产部署

对“cap deploy”的单个调用将在目标计算机上克隆您的主分支,归档以前的版本,预编译您的资产,重新启动passenger。Capistrano还可以迁移数据库,或者在deploy.rb文件中配置的任何服务器上执行任意数量的任意命令


使用Capistrano部署到app/db服务器环境,当部署出现问题时,您将很容易找到帮助

谢谢,所以基本上Capistrano为您提供了更多的选项,如预编译和重新启动乘客。我看到它还允许你保留应用程序的版本,这很酷。更多问题:似乎您必须在供应商文件夹中部署gems才能让Capistrano正常工作。部署后是否有一个变通方法让它运行bundle安装?否,您将以与开发中相同的方式安装gems,添加到gemfile,然后capistrano将在生产中自动运行bundle安装。这真的很酷,当需要密码时,系统会提示您输入密码,您会看到整个部署在终端上滚动。如果遇到问题,Capistrano还会将部署回滚到上一版本。所以你不会留下一个坏掉的半安装应用。谢谢你的评论。我目前正在与Capistrano进行斗争,看看是否能让它完成我需要的任务:)