我正在尝试为 OctoberCMS 找出一个好的开发工作流程,这是一个用 Laravel 编写的基于文件的 CMS。
我已将其设置为通过以下方式部署:
git push live master
但是,使用 OctoberCMS,我需要将“实时”更改同步回我的本地开发盒(因为每次通过 CMS 编辑内容时,都会更改文件)。目前我无法从实时服务器“git pull”。
我的接收后文件如下所示:
!/bin/sh
git --work-tree=/var/www/mysite.com --git-dir=/var/repo/mysite.git checkout -f
我当前的设置基于此 Digital Ocean文章。
是否有一种简单的方法来修改它,以便我可以从实时服务器同步更改?
最佳答案
我们目前正在评估 10 月 cms 的多实例设置。一个实例作为专用编辑器实例运行。
编辑器实例中的更改目前已手动推送到我们的 git 存储库“git-cms”的编辑器分支。这个想法是稍后通过使用 cronjob 或文件系统观察器来自动执行此操作。
有一个专门的手动过程,我们将编辑器分支 merge 到 git-cms 的 master 分支中。在这里我们还可以注入(inject)共享资源,例如 css/js/img 文件。
基于 git-cms master 分支,我们创建新实例(目前使用 docker)用于测试、生产和编辑器。
在图表中,我们的数据流看起来像
编辑器 -> git:editor -> git:master -> 编辑器、测试、生产
重要的是要知道,我们明确拒绝在除编辑器之外的任何实例中访问 Web 服务器级别的后端。这应该有助于提高安全性,但主要是确保我们拥有清晰的数据流。
到目前为止,最明显的限制是,在实例化编辑器的新实例时,更新过程运行时对编辑器所做的更改可能会丢失。目前这对我们来说不是问题,因为我们足够小,可以手动同步。它可能无法很好地扩展到多个编辑器和/或大量编辑。它还引入了额外的更新延迟。
关于php - 使用基于文件的 CMS 将开发/生产与 git 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23850900/