Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Github post钩子到开发VM_Linux_Git_Apache_Github_Virtual Machine - Fatal编程技术网

Linux Github post钩子到开发VM

Linux Github post钩子到开发VM,linux,git,apache,github,virtual-machine,Linux,Git,Apache,Github,Virtual Machine,概述 我有两台服务器,一台是本地的,另一台是非现场托管的 1-生产 1-发展 该产品由主机托管,并具有可从web上的任何人访问的外部IP。 开发只能在内部访问(没有外部IP)。 他们都使用相同的URL www.blah.com,我们的开发人员通过编辑他们的windows主机文件来指向正确的服务器,从而在这两个站点之间切换 问题 在没有internet URL的情况下,如何使用钩子推送Github来更新开发服务器?我想我可以创建一个CRON,但我希望以某种方式使用一个钩子,只在推送发生时

概述
我有两台服务器,一台是本地的,另一台是非现场托管的

1-生产
1-发展

该产品由主机托管,并具有可从web上的任何人访问的外部IP。

开发只能在内部访问(没有外部IP)。

他们都使用相同的URL www.blah.com,我们的开发人员通过编辑他们的windows主机文件来指向正确的服务器,从而在这两个站点之间切换

问题

在没有internet URL的情况下,如何使用钩子推送Github来更新开发服务器?我想我可以创建一个CRON,但我希望以某种方式使用一个钩子,只在推送发生时更新。产品有一个URL,所以我可以使用Github进行post钩子更新

如果我理解正确:

  • 当PROD被推送到时,您希望更新DEV
  • PROD无法访问DEV
  • 在这种情况下,PROD不能直接更新DEV。如果PROD可以访问另一个站点MIDDLE,MIDDLE可以访问DEV,那么您可以从PROD->MIDDLE->DEV设置一系列触发器。否则,唯一的方法是在DEV上执行cron作业,定期轮询


    如果PROD可以直接访问DEV,那么您可以设置一个web钩子,它可以在DEV上触发一个脚本,该脚本可以从PROD执行拉操作。这是一种常见做法。

    我将有两个分支1 DEV和1 PROD,它们是分开的,DEV将始终位于PROD之前。程序员将首先合并到DEV以测试更改。一旦它在那里完成了测试,他们就会将该分支合并到PROD中。同样,如果我使用dev.blah.com的思想,我不需要更新dev上的所有URL吗?