Wordpress 在有状态CMS中同步后台与Github

Wordpress 在有状态CMS中同步后台与Github,wordpress,continuous-integration,content-management-system,prestashop,devops,Wordpress,Continuous Integration,Content Management System,Prestashop,Devops,对于网站的持续集成和部署,我使用以下管道: 但对于许多CMS,如wordpress、prestashop、magento和其他,网站的配置和插件的安装是在部署网站的后台完成的 现在,我正在CMS基本映像之上构建docker映像,然后用github中的文件替换所有/var/html目录。然后Kubernetes部署容器并插入数据库和持久存储 因此,这破坏了我的管道:假设有人在后台安装和配置插件,然后有人对文件进行修改并将其推送到github。github repo没有安装插件的信息,并且将在没

对于网站的持续集成和部署,我使用以下管道:

但对于许多CMS,如wordpress、prestashop、magento和其他,网站的配置和插件的安装是在部署网站的后台完成的

现在,我正在CMS基本映像之上构建docker映像,然后用github中的文件替换所有/var/html目录。然后Kubernetes部署容器并插入数据库和持久存储


因此,这破坏了我的管道:假设有人在后台安装和配置插件,然后有人对文件进行修改并将其推送到github。github repo没有安装插件的信息,并且将在没有插件的情况下构建和部署新映像


如何在我的github存储库中集成后台完成的所有修改?

我们使用的解决方案是覆盖DB类

因此,我们监控许多表(配置、模块、挂钩等),并将所有关于它的查询存储在一个sql文件中

因此,在提交期间,我们还需要在数据库端执行.sql操作

部署后,您可以手动执行sql,也可以通过脚本检测新sql是否存在并执行

这样,我们总是与时俱进

我们开发的这个解决方案是以Prestashop模块的形式来跟踪所有动作的

关于

我的(无论如何都不是理想的)工作解决方案:

  • 在docker外部创建plugins文件夹,并将此文件夹符号链接到dockerd/wp content/plugins中
  • 在生产中重新制作
  • 然后,如果您(或开发团队)需要安装新插件,安装新插件不会破坏CI流,但需要两个独立的安装和配置
  • 因此,您基本上以与DB相同的方式处理插件文件