cap deploy:setup使用root作为所有者创建release文件夹

Jep*_*zen 6 capistrano

我正在使用capistrano在Ubuntu服务器上显示我的rails应用程序.

我已经登录到服务器并创建了一个文件夹/ webapps/myapp,但是没有子文件夹.

然后我跑了

cap deploy:setup
Run Code Online (Sandbox Code Playgroud)

到目前为止没有错误,所以我跑了

cap deploy:setup
Run Code Online (Sandbox Code Playgroud)

现在我收到了这条消息

You do not have permissions to write to /webapps/myapp/releases
Run Code Online (Sandbox Code Playgroud)

我可以通过登录服务器并更改版本的所有者来解决这个问题,我只是想知道为什么它不是用我用于部署的用户创建的?这是它如何工作或我错过了什么?

Zac*_* Xu 9

在deploy.rb文件中,您应该指定部署用户以及是否具有sudo权限.

set :user, "william"
set :use_sudo, false
Run Code Online (Sandbox Code Playgroud)

建议不要给予sudo权限,但存在此选项.

您部署的目录应该已由部署用户"william"拥有

  • 为什么capistrano不能用该用户的所有权创建应用程序根文件夹?在运行deploy之前,我必须手动创建app文件夹并更改所有权:setup :( (3认同)