ruby-on-rails - Capistrano:部署权限问题

标签 ruby-on-rails git deployment capistrano

我在将 Rails 应用程序部署到我的服务器时遇到问题。执行一个

cap deploy

我收到很多错误,指出 chmod 无法更改(且只能更改)git 对象文件的权限:

...
 ** [out :: ██████████████] chmod: changing permissions of `/srv/www/kunsthof/releases/20101113162736/.git/objects/04/779c6d894bbea4c26d6e035f71cd1ab124cc90': Operation not permitted
...
failed: "sh -c 'chmod -R g+w /srv/www/kunsthof/releases/20101113162736'" on ██████████████

文件放在部署本身上,因此部署用户应该可以更改他们的权限。关于这里可能出现的问题有什么建议吗?

最佳答案

如果您使用缓存副本,通常在部署时,您的 repo 将被克隆到一个共享目录,并将被 rsynced/copied 到当前发布目录。在应对时,您应该使用以下变量排除 .git 目录和其他不必要的目录,如 spec/test(不会在生产中使用):

set :copy_exclude, [".git", "spec"]

有了这个,您就不会复制 .git 目录,并且之后在执行 chmod 时不应该面临权限问题。

关于ruby-on-rails - Capistrano:部署权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4173537/

相关文章:

ruby-on-rails - rails 迁移: postgresql for md5 of random string as default

git - 将一个更改 merge 到多个分支

c# - 从开始菜单链接的 ClickOnce 开始时间

mysql - 通过表名和变量键检索rails中的所有记录

ruby-on-rails - 我如何跳过实际回调

ruby-on-rails - 带有分类器 gem 的无效编码符号

ios - monotouch 编译 monotouch-bindings facebook api

git - 从 git 中删除一个具有奇怪名称的文件

maven - 使用 Maven 在 Glassfish 上进行热部署

ruby-on-rails - ActionView::MissingTemplate