Capistrano部署:安装工作但不部署:检查

时间:2012-11-22 16:04:32

标签: deployment capistrano

使用简单的食谱测试capistrano。

$ cap deploy:setup
  * executing `deploy:setup'
  * executing "sudo -p 'sudo password: ' mkdir -p /u/apps/ [..]
    [..]

deploy:setup表现得很好。

然而

$ cap deploy:check
  * executing `deploy:check'
  * executing "test -d /u/apps/[..]
    [..]

运行deploy:check时出现以下错误:

The following dependencies failed. Please check them and try again:
--> You do not have permissions to write to `/u/apps/
[..]
--> `/u/apps/app/shared is not writable [..]

似乎capistrano在deploy:check模式下没有使用sudo。

我没理解!

deploy:setup中,整个目录结构是由capistrano创建的,没有任何问题?

为什么capistrano不像deploy:check那样使用sudo?

2 个答案:

答案 0 :(得分:2)

我也遇到了这个问题,结果发现capistrano正在创建<user>组下的所有文件夹,但共享文件夹除外。 SSH到您的服务器上并进行长列表ls -l。如果你看到 - root - root - 共享文件夹,你只需要更新文件夹的权限:

sudo chown <user> shared
sudo chgrp <user> shared

答案 1 :(得分:1)

我遇到same issue:诀窍是明确配置Capistrano不要使用sudo
您可以在deploy.rb文件中将其关闭:

set :use_sudo, false

如果您需要使用sudo,请在命令中使用sudo DSL Action Invocation

run "#{sudo} apachectl restart"