如何使用 docker 自动化 wp 实例设置 + 主题/插件定制?

问题描述

我想为 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 安装步骤,并为您提供可能针对自动化测试的虚拟内容。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...