如何使用 docker 自动化 wp 实例设置 + theme/plugin 自定义?

How to automate wp instance setup + theme/plugin customization with docker?

我想为 wordpress 创建一个 docker 图像,它会创建一个随时可用的 wp 实例,其中包含已经设置和完成的安装、激活的主题和插件以及其他配置。 我正在探索 WP CLI 以将其作为 Dockerfile 构建的一部分来执行此操作,但事实证明这是一个有状态的过程(它需要现有的 mysql 数据库已经就位),这在 docker 构建期间是不可能的.

我正在考虑创建一个 bash 脚本来启动一个 docker WP CLI 容器和一个纯 ubuntu/php 容器。然后 wp cli 容器将在 ubuntu/php 容器上安装和设置 wp 实例,该容器将成为事实上的 WP 容器,最后 wp cli 容器将被脚本关闭。

我不确定这是否是一个好的解决方案,您对此用例有更好的建议吗?

这是一个广泛的基于意见的问题。我认为您基本上需要弄清楚三件事:

  1. 查找并选择一个 Composer 模板来管理您的依赖项。例如 https://roots.io/bedrock/.
  2. WP-CLI 命令。我看你已经在了。
  3. 找到一种导出和导入 WordPress 配置的方法。例如https://wordpress.org/plugins/wp-cfm/

基本设置例程可能如下所示:

# Download WordPress core and plugins.
composer install -n --no-dev

# Default DB name and user.
wp config create --dbname="test" --dbuser="root" --dbpass="" --dbhost="127.0.0.1"

# Install a basic site. The title doesn't matter.
wp core install --url="blog.localhost" --title="Lorem ipsum dolor sit amet" --admin_user="admin" --admin_password="admin" --admin_email="webmaster@example.com" --skip-email

# Language.
wp language core install de_DE

# Activate WP-CFM and import default conf.
wp plugin activate wp-cfm
wp config pull default

您不一定需要 Composer。您也可以仅使用 WP-CLI 下载 WordPress 和插件。 Composer 的优点是版本控制,你只需要一个 composer.json 和 -.lock 文件来保持你的 repo 干净。然后只需一个命令 composer install 即可下载您和您的同事的所有内容。另一个很大的优势是 vendor/ 可以 在构建 期间缓存,例如取决于 composer.lock 校验和。这可以大大缩短构建时间。

除了上述示例例程,您还可以尝试导入 现有数据库 备份,然后仅更新基础 URL 并导入更新的配置。这将跳过 WordPress 安装步骤,并为您提供虚拟内容,以可能针对自动化测试。