git - 从开发到使用Git进行部署

git - 从开发到使用Git进行部署,第1张

我很困惑。我已经阅读了很多关于& c; development& amp;部署'与git和避风港无所不知。

现在我有:

  1. 包含项目(git init
  2. 的本地(开发)存储库
  3. 我存储/提交/推送项目的Gitlab / Github服务器。
  4. 生产服务器
  5. 使用本地存储库和gitlab / github服务器都很清楚。我做了更改并推送到服务器。接下来,我需要将其部署到服务器,这是一个问题'如何正确地做到这一点'?

    许多消息来源写道,我需要在生产服务器上安装两个存储库:

    1. Bare git --bare init
    2. /var/www文件夹
    3. 中的非裸存储库

      git - 从开发到使用Git进行部署,Description,第2张

      然后我需要将更改从本地/开发存储库推送到 Bare ,然后从{strong> Bare 中提取/var/www中的项目库中。

      但如果我有Github / Gitlab服务器,那么我就不会在这个 Bare 存储库中看到逻辑,因为我在服务器上有这个代码。我没错?

      我正在为我的项目使用Laravel,并且需要一些提交composer install之后。如果我在生产服务器上提取此提交,那么它可能会破坏网站并且它会停止一段时间,直到我将完成所有必需的步骤。当然所有步骤都可以使用自动脚本完成,但我认为它也会在短时间内破坏网站。

      我想了解将应用程序部署到生产服务器的正确方案。

      最佳答案:

      2 个答案:

      答案 0 :(得分:2)

      我认为最好的方法(这就是我们在一个大型项目中所遵循的方法)是在一个单独的环境中设置一个单独的git项目(让我们说"测试"或者" Stage" environment),你将从中克隆gitlab上托管的git项目。

      克隆阶段并执行必要的准备步骤后,您可以将提交的更改提取到gitlab / github服务器。这样您就可以在每次拉取请求后在舞台上测试网站。如果一切正常并且没有损坏的部分,您可以从生产环境中提取git内容,这也遵循下面描述的相同逻辑。这个想法是舞台环境必须有相同的PHP版本和服务器设置等。

      当然,您可以使用Vagrant,Docker或Jenkins之类的自动化工具(仅举几例,但还有更多),这些工具可以解决由通过使用包括项目在内的实际系统配置创建映像并将项目部署到单独的虚拟机来实现不同的系统配置。

      下面是您可能会遵循的详细过程。

      git - 从开发到使用Git进行部署,enter image description here,第3张

      答案 1 :(得分:1)

      像Capistrano这样的更广泛的工具可以为你自动化很多东西,但也有一个学习曲线。

      如果没有更多细节,很难知道最佳解决方案,但是一旦我看到原子提交的策略就是使用符号链接。我举一个例子

      在服务器上两次克隆您的存储库,并设置/var/www的符号链接指向其中一个。部署时,进入另一个文件夹git pull,运行任何所需的安装命令,然后更新符号链接以指向更新的文件夹。我相信这与Capistrano的工作方式类似。

      只是我的两分钱!

      本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复