gpt4 book ai didi

git - 使用 gitlab 自动部署

转载 作者:太空狗 更新时间:2023-10-29 14:46:03 24 4
gpt4 key购买 nike

我们在办公室的 ubuntu 服务器上运行着 Gitlab 服务器。我正在使用每个 repo 的接收后 Hook 进行自动部署。这是我做的,

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

现在我想通过现有的标准工具进行这种自动部署,因为使用这种部署方式我需要配置所有的存储库,所以它会再次花费很多时间。还有什么其他方法可以执行此自动部署。

生产服务器:ubuntu 14.04LTS,生产网络服务器:nginx,本地 git 服务器:gitlab。

更新:我现在想这样做是因为我在使用 gitlab shell 时遇到了问题,正如@Ciro Santilli 所解释的那样。我也在做 git push production 作为@Ciro Santilli 在我遇到 gitlab shell 问题后提到的答案链接。但我只想做 Gitlab_CI 所做的事情,push to master branch 我们的生产服务器应该更新了。我会尝试使用 Gitlab_CI,但我想知道是否有任何其他工具可以执行相同的操作。

最佳答案

编辑:使用 Custom Hooks feature ,如果您具有文件系统访问权限,则不使用 Hook 的旧理由不再适用。但是,我仍然建议使用 CI,因为它是:

在 Custom Hooks 特性之前不使用 hooks 的原因:

  • 它们在所有 repos 之间共享
  • 它们可能会在您更新 gitlab shell 时产生 merge 冲突
  • 它们对 gitlab 的安全至关重要,接触它们会使您面临漏洞

很多讨论在:Gitlab repository mirroring

除非您指定了更多有关您的部署的信息,而不是您想使用 Git 进行部署,否则 GitLab 没有任何关于它的具体信息,答案将与通用 Git 问题相同:Deploy a project using Git push

如果您有更具体的要求,可能有一项服务可以满足您的需求:https://github.com/gitlabhq/gitlabhq/tree/d7c50b4a95b5530ae0e2f5249cfd9a419dd940c6/app/models/project_services ,但我会把它留给另一个更具体的问题。

关于git - 使用 gitlab 自动部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26721902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com