Docker 中的 Web 应用开发/生产部署

Docker 中的 Web 应用开发/生产部署

我正在运行一个 Web 应用程序(实际上是 Wordpress,但我认为这对这个问题来说并不重要)。它在两个 Docker 容器中运行,一个包含 Apache Web 服务器(通过官方wordpressDocker 映像),另一个包含 MariaDB。使用部署容器docker compose并从主机上的文件夹安装数据。我的备份是mariabackup在 MariaDB 容器中运行,然后备份 Web 服务器文件和数据库备份。我使用 traefik 作为反向代理。

有时,我想对 Web 应用进行重大升级或进行一些开发。为此,网站的开发副本将非常有用。开发副本不需要一直运行。我认为有两种情况我会使用它:

  1. 将主实例(“生产”)复制到开发。进行一些测试或开发。然后删除开发实例。

  2. 使生产变为只读。将生产复制到开发。升级 Web 应用程序。将开发复制到生产。使生产变为读写。

有什么好办法可以做到这一点?我倾向于为我的暂存环境添加两个容器docker-compose.yml,然后创建一些脚本(我曾考虑使用 Ansible,尽管我从未使用过它)来完成复制。我还在考虑使用 OverlayFS 之类的东西来避免复制大量数据。但我也偶然发现了 Vagrant 和 Trellis 之类的工具,想知道其中是否有一种更好的方法来解决我的问题。

相关内容