Capstrano+Git:生产服务器本地存储库

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

我正试图为我的应用程序做“部署。gitrepo是我的部署服务器的本地版本(也就是说,我只有一台服务器,而且我没有在GitHub上托管我的代码)。

这是文字记录(为了隐私起见,我的应用程序名改为“myapp”)。

  * executing `deploy:cold'
  * executing `deploy:update'
 ** transaction: start
  * executing `deploy:update_code'
    executing locally: "git ls-remote /home/mrichman/git/myapp.git master"
fatal: '/home/mrichman/git/myapp.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
*** [deploy:update_code] rolling back
  * executing "rm -rf /var/www/myapp.com/releases/20100218203108; true"
    servers: ["myapp.com"]
Password:
    [myapp.com] executing command
    command finished
Command git ls-remote /home/mrichman/git/myapp.git master returned status code 32768

我也试过

set :repository, "deploy@localhost:/home/mrichman/git/myapp.git"

但这给了我

ssh: connect to host localhost port 22: Connection refused

任何想法都会受到赞赏。

提问于
用户回答回答于

只是遇到了同样的问题。关键是不要使用部署_通过复制,但更确切地说是设置:本地_储存库

应该将其设置为从开发计算机/膝上型计算机访问存储库所使用的URL。

所以我的

set :repository, "file:///srv/git/myapp.git"
set :local_repository, "nameOfHostFromSSHConfig:/srv/git/myapp.git"

好像起作用了。只需记住,然后删除部署_通过复制行。

用户回答回答于

以部署到的站点的用户身份登录,并尝试查看用户是否拥有访问该目录的权限:

LS-la/home/mrichman/git/myapp.git

如果获得了一个权限被拒绝的错误,那么必须确保设置了存储库的封闭目录的权限,从而允许部署脚本访问这些文件。

扫码关注云+社区