我们的capistrano设置是:ssh与普通用户,但部署到需要sudo权限来创建文件的位置。
我想使用sudo运行特定的capistrano命令run "cd #{configuration[:releases_path]} && #{decompress(remote_filename).join(" ")} && rm #{remote_filename}"
。是否有一种巧妙的方法来骑过它?
def distribute!
upload(filename, remote_filename)
run "cd #{configuration[:releases_path]} && #{decompress(remote_filename).join(" ")} && rm #{remote_filename}"
end
答案 0 :(得分:4)
我相信你可以在capistrano中使用“sudo”功能,例如
def distribute!
upload(filename, remote_filename)
sudo "cd #{configuration[:releases_path]} && #{decompress(remote_filename).join(" ")} && rm #{remote_filename}"
end
答案 1 :(得分:0)
以下解决方法使其有效。
task :self_own_dirs do
sudo "chown -R #{user} #{releases_path}/.."
end
before 'deploy:update_code', 'deploy:self_own_dirs'