首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用gitlab自动部署

用gitlab自动部署
EN

Stack Overflow用户
提问于 2014-11-03 19:46:09
回答 1查看 6.9K关注 0票数 2

我们在ubuntu服务器的办公室中运行了Gitlab服务器。我正在进行自动部署,使用来自每个回购的后置接收钩子。我就是这么做的,

  1. 我在后接收文件中编写了shell脚本,将代码从gitlab服务器推送到实际的生产服务器。
  2. 因此,我们的gitlab服务器上的所有repos都有post接收钩子来进行自动部署.
  3. 我在生产服务器上安装了git裸回购以接收代码gitlab服务器。
  4. 在生产服务器的裸回购中,我编写了另一个后收钩子,使用GIT_WORK_TREE部署代码,并在相同的后接收钩子中重新启动nginx服务器。

现在,我想通过现有的标准工具进行自动部署,因为使用这种部署方式,我需要配置所有的回购程序,这样就需要花费大量的时间。做这个自动部署的其他方法是什么。

生产服务器:Ubuntu14.04LTS,生产git服务器:nginx,本地git服务器:gitlab。

更新:--我现在想这么做--因为我对gitlab有问题,如@Ciro所解释的那样。我也在做git push production,作为@Ciro答案的链接,在我对gitlab有问题之后提到。但是我想做的只是Gitlab_CI所做的,push to master branch我们的生产服务器应该被更新。我将尝试使用Gitlab_CI,但我想知道是否还有其他工具可以这样做。

EN

回答 1

Stack Overflow用户

发布于 2014-11-03 19:57:42

编辑:对于自定义钩子功能,如果您有文件系统访问权限,那么不使用钩子的旧理由就不再适用了。但是,我仍然建议使用CI,因为实际上:

  • 维护更简单,特别是使用.yaml 存储库内部的配置
  • 与存储库更加隔离,因此不太可能将事情分解。

在自定义钩子功能之前不使用钩子的原因:

  • 它们在所有回购协议中共享。
  • 它们可能在更新gitlab shell时生成合并冲突。
  • 它们对gitlab至关重要,触摸它们会使您面临漏洞。

正如在:Gitlab存储库镜像中讨论的那样

除非您指定了更多关于部署的信息(除了希望使用Git进行部署)之外,否则它没有任何GitLab特定的内容,并且其答案将与通用Git问题:使用Git push部署项目相同。

如果您有更具体的需求,可能有一种服务可以满足您的需要:服务,但我将把它留给另一个更具体的问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26721902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档