使用简单的方法测试 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 [..]
在 deploy:check
模式下,capistrano 似乎没有使用 sudo。
我不明白!
虽然在 deploy:setup
中整个目录结构是由 capistrano 创建的,没有任何问题?
为什么 capistrano 不像 deploy:check
那样使用 sudo?
最佳答案
我也遇到了这个问题,结果是 capistrano 在 <user>
下创建了所有文件夹。除共享文件夹外的组。 SSH 到您的服务器并做一个长列表 ls -l
.如果您看到 - root - root - 对于共享文件夹,您只需要更新该文件夹的权限:
sudo chown <user> shared
sudo chgrp <user> shared
关于deployment - Capistrano 部署 :setup works but not deploy:check,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13516427/