【问题标题】:How can I use git to deploy to test server?如何使用 git 部署到测试服务器?
【发布时间】:2019-03-02 17:55:49
【问题描述】:

几年前我使用过redhat 的open shift。更新服务器的方式是推送到 git repo。推送更改后,您可以在浏览器中测试您的应用程序。

我想在我的一个虚拟机中实现它以进行测试。这样每当我推送到 repo 时,测试人员就可以立即看到我的更改。我在云虚拟机中进行测试,因为测试它的人在另一个国家。我正在使用 nginx、pm2、nodejs 和 express。

我知道我可以 ssh 到服务器,拉取更改,重新启动 pm2。但如果有更自动化的方式,那就更好了。

【问题讨论】:

  • 您可能想在此处查看服务器端 git 挂钩:digitalocean.com/community/tutorials/… 当收到 git push 时,您可以在服务器上执行 bash 脚本,并执行任何需要发生的事情来更新服务器。希望有帮助!
  • 我看过这个链接,我宁愿把它标记为正确答案。链接将来可能会死,所以为了以后的读者,请在下面回答并稍微解释一下。谢谢!
  • 你完全正确!我已经在下面详细说明了。

标签: node.js git nginx deployment pm2


【解决方案1】:

您可能想查看服务器端的 git 挂钩。当收到 git push 时,您可以在服务器上执行 bash 脚本,并执行任何需要发生的事情来更新服务器。

简要介绍一下:

可以在.git/hooks 下找到挂钩。在这里您将找到以下文件:

  • pre-push.sample
  • 提交-msg.sample
  • pre-rebase.sample
  • post-update.sample
  • prepare-commit-msg.sample
  • pre-applypatch.sample
  • update.sample
  • pre-commit.sample

举个例子,在你的服务器上,如果你将以下内容添加到你的 post-update 钩子中,服务器会在收到提交时向你发送一封电子邮件:

#!/bin/bash
git show --name-status | mail -s "Received Push" youremail@email.com

在此文件中,您可能希望编写脚本以使用新收到的数据重建网站!

【讨论】:

    【解决方案2】:

    您所描述的称为 Continuos 集成/持续部署,通常称为 CI/CD。有专门为此制作的工具。两个主要参与者是 jetbrains 的 TeamCity(根据您描述的项目大小免费使用)和 Jenkins(开源)。我建议您搜索使用这两种产品之一的 CI/CD 教程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      • 2015-06-24
      相关资源
      最近更新 更多