我想知道是否有人对这种情况有更好的策略。
我目前在与网络服务器相同的盒子上托管我自己的远程git repo。
所有git repos都在git用户之下。
sudo -uwww-data -gwww-data git --git-dir=/var/www/website/.git --work-tree=/var/www/website pull
我执行此命令的每分钟都有一个以root身份运行的cron作业。 Web文件夹中的git repo从同一个盒子克隆到git的home目录,而不是通过ssh存储它。
所以我的问题:由于git不拥有Web文件,因此无法使用git hook移动网站。我会假设我不希望git有sudo,也不会通过git钩子工作,对吧?是否有什么能比每分钟更快地部署网站?我不希望操作非常昂贵。
是否有某种守护进程可以运行并监听某种通知?就像让它观看文件的最后修改时间一样?
答案 0 :(得分:1)
请注意,this article (in French, translated through Google)报告sudo适用于您的方法:
更改
sudo
以允许gitosis
用户将此命令用作www-data
。
为此,通过运行“visudo”添加以下行:
git ALL = (www-data) NOPASSWD: /usr/local/bin/pullhere
然后,在每个存储库中,在必要时,在
post-receive
文件中添加下一个挂钩:
sudo -u www-data /usr/local/bin/pullhere /html/u/user/here
例如
/ home/git/repositories/projet1.git/hooks/post-receive
答案 1 :(得分:0)
如果您仍在寻找在git推送后执行自动部署的方法,那么您可能会对此感兴趣:
https://github.com/JamesBrooks/git-runner(使用git-runner-deploy gem)。