Git的post-update钩子作为部署管理。就像Heroku一样。

3

我想要将代码推送到服务器仓库,然后post-update钩子会将最新的代码拉取到部署文件夹,并重新启动守护进程。

但是git用户无法访问部署文件夹,也无法重新启动守护进程。

我该如何像Heroku一样进行git推送部署呢?

1个回答

2
您可以使用与Heroku上推送相似的机制:基于SSH的操作。
在服务器端,您的git用户(即运行post-update钩子的git用户)将通过rsh调用部署脚本,这意味着git用户帐户具有:
- 在服务器用户(即能够访问部署文件夹并拥有守护进程的用户)的$HOME/.ssh/authorized_keys中发布的公钥 - 私钥(在他的$HOME/.ssh中)

我不明白重点在哪里。Git用户可以以这种方式执行服务器用户可以执行的任何操作吗? - guilin 桂林
@guilin:当你执行ssh(安全外壳)命令时,该命令将作为你在ssh命令中指定的用户执行:“ssh anotherUser@server mycommand”。如果在服务器上,git用户由于某种原因无法访问文件夹或重新启动守护程序,则需要找到正确的用户,并将命令作为该用户的ssh。我不知道为什么在你的情况下git用户无法访问你的资源,但我提供ssh命令作为解决方法。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接