【问题标题】:Gitlab AutoDeployGitlab 自动部署
【发布时间】:2015-05-20 17:52:33
【问题描述】:
这是我的情况,我的存储库有一个网络服务器和一个 gitlab 服务器,我正在尝试在推送到远程分支后自动更新我的站点,如果我直接从笔记本电脑推送到web 服务器,但我想推送到我的 gitlab 服务器,并且我希望我的 gitlab 服务器更新我位于另一台服务器上的网站。
在我的服务器上,我有一个包含以下内容的接收后挂钩
!/bin/sh
git --work-tree=/var/www/html/site --git-dir=/var/repo/site checkout -f
如果我从笔记本电脑推送到网络服务器,这将起作用。不是来自我的 gitlab 我想我需要在我的 gitlab 服务器上安装一个钩子我在网上找不到任何东西。
【问题讨论】:
标签:
apache
gitlab
githooks
【解决方案1】:
我们在这种情况下使用 gitlab-ci。
您可以在 gitlab 实例中设置 gitlab-ci。
当你推送到 gitlab-server 时,gitlab-ci 会触发一个脚本。
在脚本中,您可以更新 Web 服务器内容。
还有另一种方法可以使用 gitlab 网络挂钩来更新网络服务器。
在您的 Web 服务器上,您应该创建一个 url 以调用 git 命令以更新 Web 服务器内容。然后打开你的 gitlab 项目,在 Settings/Web hooks 创建指向上面创建的 url 的新钩子。当你推入 gitlab 时,它会触发钩子并且你的网站将被更新。
我认为第二种方式更适用于你的情况。
【解决方案2】:
gitlab-ci 是解决方案之一。
很简单,
- 创建 gitlab 运行器。
- 将 .gitlab-ci.yml 文件添加到存储库的根目录。